Programming languages list, by Ian Hickson
ian.hixie.ch
ian.hixie.ch
- It's not immediately clear what the criteria for a "major failing" is. C# is actually an ECMA and ISO standard, just like JavaScript, certainly less controlled by Microsoft than Java is controlled by Oracle through their rubber-stamping JCP, or than Go is controlled by Google. Also, if we're getting stuff like "one-based strings" in the list of failings (BTW, wasn't indexing done starting from 1 for anything in Pascal?), indenting-based block delimitation should also be listed there for Python, because what the hell, I don't like that either.
- Execution is arguably a property of the runtime, not of the language. There are some C interpreters around, for instance.
It may be my limited English, but I don't entirely understand what he means by 'case-for-visibility'.
Besides, there is an iOS port of Go here: https://bitbucket.org/minux/goios/wiki/Home
Check it out: http://c2.com/cgi/wiki?NominativeAndStructuralTyping
BTW: Every time I dive deeply into programming, especially computer science theory, I come across this c2.com site. Why isn't it mentioned more? I understand it was the first wiki ever?
It's probably one of the best sites on the internet for programmers wanting to learn.
[1] http://www.youtube.com/watch?v=7cqq0V9LnXY&feature=player_de...
Perl 5: Paradigm: Yes*Perl is no less or more maintainable than any other programming language. It just depends on the developers you use that particular tool. And the whole "Perl promotes unreadable code" is really a thing of the past; modern Perl has come on leaps and bounds.
"Function Overloading" should be "N/A" for a language without subroutine signatures. Any Perl function can take any combination of arguments and decide what to do with them. This is used to create de facto function overloading.
"Method Pointers: No" is ridiculous. Perl has subroutine references, which includes methods. You can even use a method name string as a method reference if you need to.
Don't take it too seriously and you will see there is a more than a grain of truth in what he says.
http://ian.hixie.ch/career/resume.html
http://lxr.mozilla.org/mozilla/find?string=PLIF/
http://software.hixie.ch/utilities/cgi/data/data.pl
http://software.hixie.ch/utilities/cgi/pingback-proxy/server...
Everyone is entitled to their own opinion though :)
Also, Python garbage collection is optional and generally the memory management is through reference counting, not crappy stop the world garbage collection.
Yes, technically reference counting is not garbage collection, but in these sorts of comparisons the term is typically intended to distinguish automatic from manual memory management. The overhead of reference counting is non-trivial, that's why it's lumped with the garbage collected languages.
Wrong. `ctypes.c_char.from_address(a)` and enjoy your SIGSEGVs like a seasoned C programmer.
(Well, that is unless you're on Jython or IronPython.)
LLVM is open source project sponsored by Apple, but I'm not sure about Foundation framework (a standard library with containers, concurrency functions and networking).
e.g. the difference between 1+1 being translated to bytecode meaning 1+1, and it being actually translated to an x86 add operation.
The latter means that the code compiles straight to native machine code, but also that executing the code relies on services provided by a "heavy" (as compared to C's runtime library) runtime library. For Go, the runtime does garbage collection, i.e. it's takes a fairly "active" part of the execution.
Even C and C++ have runtimes.
(And frankly, taking an arbitrary regional spelling difference and declaring that whichever one you're used to is "Right", without even an attempt at a justification, is pointless at best and borderline trollish at worst.)
Feature table: http://dlang.org/comparison.html
And the "Other notable failings" looks pretty much a very biased personal opinion.
Back in the 8 bit days, at the age of 12 I was already aware of compilers and interpreters implementations for several languages.
Just as one possible example, there were BASIC interpreters and compilers for CP/M.
I also don't understend why closures are "planned" in java but method pointers are "no*"
If you've followed the HTML 5 spec process, you'll have answers to your other questions as to Hixie's inisght and taste in technology paradigms.
I am being polite here, but there is a reason certain languages were ignored.
Also, why does Go have "Native with runtime"? All the other native languages have runtimes as well.