In short
So basically, it boils down to:
- out with the P languages: Perl, Python and PHP
- yay! to Javascript.
'nuff said (though I'm still sticking with Perl - and Ruby was never really a contender, anyway)
What are you up, Verity? Ensconced in one of your comfortable, miles-from-any-critical-path projects? Actually, I have been sussing out an upgrade path for our longstanding customer x. Do you remember? Certainly I do. It is quite easy to remember 'x'. Even in this age of companies with stupid names, it is unusual. As I recall …
Pascal was Algol and Fortran more like Cobol, in my oppinion, having used them all.
Hardly surprising, since Pascal was created to be an educational language in the Algol family, and Fortran1 and COBOL2 were both created long before Algol, so it would be surprising for them to have adopted its style.
But by the same token, it would be more precise to say that FORTRAN, having come first, influenced COBOL, or more plausibly that they both reflected the capabilities and ideas of the time.
And modern-day Fortran and COBOL have adopted many ideas from Algol. Well-written free-format OO COBOL is not much like traditional COBOL at all.
1Then "FORTRAN", of course; the name change came in 1990.
2Not yet "Cobol".
I'm voting for <script type="text/haskell">. That way every web developer will end up spending their entire day worrying over what a monad is, and the rest of us can get back to the real world in peace and quiet without interfaces that change every bloody time you fire up the app.
Isn't a monad something that Leibniz dreamed up to explain the System of the World?
I seem to recall Leibnitz wrote about window-less monads. In those days I never got up early enough to make it to a lecture, otherwise I might also be able to tell you what they are.
They are simplicity itself. Windowless monads have no commerce with one another. They have no commerce - one monad cannot affect another one. (Technically, for Leibnitz, a monad cannot be the efficient cause of an effect on another monad.)
Basically, Leibnitz proposed that the world works like this:
- Every kind of matter is a type of monad; things are made up of collections of these types of monads.
- Every monad has a series of states it's been in, and is in presently, and will be in in the future.
- When things happen, it's just monads each moving into new states.
- When it appears that one thing causes another to happen, that's an illusion. Monads move individually into their new states.
- We think that there are efficient causes because those different monads are in "pre-established harmony" with one another. In other words, God set up the universe like one of those Disneyworld Animatronic displays, where a bunch of things move in a synchronized fashion.
- We experience the world as harmonious in this fashion because God has given us "the best of all possible worlds", which means in part one that actually behaves in a way similar to how we think it behaves
This whole tortured and solipsistic arrangement is supposed to solve the mind-body problem. Many people think it's easier to just not be a dualist and not have a mind-body problem in the first place. A great many more people, of course, don't give a damn and just get on with their day.
HTH. HAND.
Fab technology #1: the dominant browser-side language will be JavaScript.
This is like saying your next fab resort will be a Stalin's gulag.
You may not necessarily want to be there, but you ARE in a military truck with GPU goons on all sides, so choices are restricted.
Still doesn't mean the destination is "fab".
Also, do people differentiate between a JVM and Java?
I think Verity is actually channeling Matthew Arnold:
"for the world, which seems
To lie before us like a land of dreams,
So various, so beautiful, so new,
Hath really neither joy, nor love, nor light,
Nor certitude, nor peace, nor help for pain;
And we are here as on a darkling plain
Swept with confused alarms of struggle and flight,
Where ignorant armies clash by night"
After long years of programming, it's my view that this is how it has been, semper, ubique, et ad omnibus. Every new technology promises so much, until it collides with reality.
Peotry? Are you sure?
I rather thought Verity was alluding to King Canute, he of sitting-on-a-throne-ordering-the-rising-tide-to-retreat- and-getting-wet fame. Or, equally, to King Knut, who ordered the sea to retreat to show his fawning courtiers that the temporal powers of kings didn’t amount to much compared to the forces of nature.
Though probably not to King Astroknut, who is believed to have led the Viking expedition to Mars in 976. Viking helmets as a rule did not have decorative horns on them. And certainly not Viking space helmets. But I digress.
Canute and Knut, yes, but ‘Cnut’ seems to be a spelling used only by those intent on provoking unfortunate misunderstandings.
http://www.brython.info/index.html?lang=en
Joke appart, I find the rumours of Python's death a bit exagerated, especially as people are moving away from Java and there are things that you jus can't do in a compiled language (and for which JS is grossly inadequate; I'm thinking "anything serious" for example ;-) )
should be sentenced to 10 years working on a Javascript heavy system.
I lasted 3 months myself, before quitting due to the insanely bad code that I had to work with and the fact that the only guy there who could comprehend the thing because he'd spent years writing it was always so busy sorting out the endless problems that occurred on a daily basis and needed to be solved instantly, that he never had any time to answer the many many questions I had regarding what all this garbage did. Of course he believed that all code is "self documenting" and anyone who couldn't scan through the 30000 lines of undocumented javascript functions in an average source file and instantly understand the whole thing was so intellectually inferior to himself the great genius and guru of the company that they deserved to be treated with nothing less than contempt....
If someone could show me just one clear fully realised javascript based system that is easy to comprehend, maintain and extend, and has clear benefits over other alternatives then I might just be persuaded to change my opinions, but for now the PJSTD (Post Javascript Traumatic Disorder) has still not healed completely.
Except isn't it the JVMs that are the problems, not the Java language itself?
Not really. It's the JREs, and specifically the vast brokenness of the GUI parts of the class libraries, rather than the source languages or the JVM, which is the source of nearly all of the security problems with Java. Oracle undermined the security model to provide more GUI razzle-dazzle and broke the type system. Gowdiak's discussions are fairly straightforward if you're curious.
What should we teach our kids. Thinking about it I always seem to return to this "no-silver-bullet" mood.
http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf
One language is probably not enough. I would prefer one with a compiler, as all this multicore stuff probably need it. Having worked with several from machine code to Cobol, I have no favorite language. You can produce shit with a "good" language and good stuff with a "bad" language. It all comes down to how good you are at using the language, and especially on how big and useful the library you (and your friends) have been able to collect, with useful bits and pieces. Companies seldom realize how empty the pockets of a new programmer is when entering a new organisation.
@svv Taking care of some other persons "baby" is never easy, it can be difficult even to understand programs you wrote yourself years ago. I have seen people leave for the same reason. I have also met extremely efficient "system hoppers". Guys who jump ship just when the software is supposed to be ready, and never is, and just before the customers start to complain.
Anyway, my daughter wants to learn programming, what should I recommend.
And then there was this documentation thing. I have seen some good, but never any that kept up with reality and the source code. The truth is, indeed, in the source, especially if the source you have corresponds to the one that was used for your customer.
I have always worked for software companies producing software for customers so I see programing only from that perspective.
Check out intel xdk. Makes it easy to create and test apps on all major smartphones. Best of all, your platform is node.js and you content is HTML/CSS. They include Cordova too, so you can access all the sensors on your phone easily from JavaScript. I don't work for Intel, nor do I write phone apps for a living. XDK really lowers the entry barrier.