The JavaScript Juggernaut Rolls On
JThaddeus writes "An article in TechWorld Australia summarizes the latest opinions on JavaScript from ThoughtWorks: 'There is no end in sight to the rise of JavaScript... "I think JavaScript has been seen as a serious language for the last two or three years; I think now increasingly we're seeing JavaScript as a platform," said Sam Newman, ThoughtWorks' Global Innovation Lead.' The article touches on new additions to JavaScript tools, techniques, and languages built on JavaScript. As the fuller report (PDF) says, 'The ecosystem around JavaScript as a serious application platform continues to evolve. Many interesting new tools for testing, building, and managing dependencies in both server- and client-side JavaScript applications have emerged recently.'"
Great... more single-core-hogging fun ahead...
Is the word "platform" officially over? My fucking toaster is a bread-browning platform.
Breakfast served all day!
Isn't Blink supposed to be doing some serious changes to how JavaScript is handled?
I dunno, either way, bring on Blink regardless because it sounds better than what Chrome(ium) has become right now, a massive heap of slow and awfulness.
Glad they ditched CSS Regions. What a terrible specification that was. More needs to be ditched and turned in to libraries that can be loaded dynamically instead of bloating up everything else to high hell.
Screw the initial expense of loading the libraries.
Why don't browsers come with a generic scripting engine (in addition to, or replacing, the JavaScript virtual machine) that runs some sort of intermediate language a la .NET CIL, or LLVM IR, etc.?
Then we could use pretty much any scripting language we wanted with the content.
Why do the worst technologies that are just barely able to solve the problem always make it? Is the developer community collectively really this stupid? I fear it is...
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I just started on a web project that is heavily javascript (even though it's an ASP.Net app). It feels like I stepped back in time 10 years. I'd have code not execute. Why? Some error somewhere in the code that was ignored. I had a typo on a property set somewhere else. No error. Why? Because javascript created a new property with the typo and set *that*. And every change requires me to run the app to see if it works, because I don't have a compiler to check the basics out ahead of time. And then, because I'm debugging an app in one window, when I'd open a new one to read the news, I'd hit other, non-ignored errors on those pages (advertisements) because 90% of commercial pages these days have error-laden javascript because people rarely check for error conditions. Horrible language.
In my 35 years of professional programming, getting good at dozens of languages, I've only run across 2 I've actively disliked. Javascript is one of them (tcl was the other). JS is a crap language that IMHO can't be fixed. If they ever add an honest garbage collector to the base language then most programs will delete themselves upon execution.
...a programming language (still) doesn't have to be good in order to see widespread use.
single-core-hogging
I don't see how that needs to be the case. Everything except IE pre-10 supports Web Workers. Firefox is moving toward the process-per-tab model popularized by Chrome, and the refactoring project is codenamed Electrolysis.
When the media is awash in tips on making killing in stocks or real estate, that's when you know that the market has reached its height.
Arguably, it should have been Python, which is a better language. But Python has a problem. Python's little tin god, Guido von Rossum, is in love with his own implementation, CPython. CPython is a naive interpreter. (A "naive interpreter" is one which does the specified operations in the specified order, with little optimization across operations.) In CPython, everything is a dictionary and a lot of time is spent doing lookups. This allows everything to be dynamic. In Python, one thread can patch objects in another thread while both are running. Objects can gain or lose elements on the fly. Even running code can be "monkey-patched".
The price paid for that excessive dynamism is that a Python compiler is hard to write, and an optimizing Python compiler can't optiimize much. Google tried in-house to make Python faster, and their "Unladed Swallow" failed humililatingly. (A different group at Google then developed Go, aimed at the same problem of producing something good for server-side processing.) The PyPy crowd has tried, hard, to make an optimizing Python compiler, and with an incredible amount of complexity under the hood, has made considerable progress, but not enough that PyPy is used much in production.
Pascal went down for a similar reason. Wirth was in love with his elegant recursive-descent compiler. But it didn't optimize, couldn't handle separate compilation, and had no way to handle errors other than aborting. Python seems to be headed for similar irrelevance. It hasn't even been able to replace Perl, which ought to be as marginal as "awk" by now.
Read the essay "Worse is better" and you might understand more about what causes this
regardless, is there a co-relation between many independent developers and bloat?
or are you saying this will create more dependent developers and it won't bloat?
Why are some developers obsessed with performance? The user probably isn't. They don't care whether something loads 2 seconds quicker
I thought loading faster was the difference between the user staying on a document and the user hitting the Back button to return to someone else's document. Web search engines have recognized this and have started to penalize slow-loading documents.
I'm kind of surprised that there is not one good comment about the benefits of javascript up above this yet. I mean you can off load sooo much data to the client cpu. With the latest in webstorage and the sqlite port to JS I can actually create a friggen database server running on the client. WebRTC and WebSockets are seriously about the change everything in the next 1-2 years....I'm curious how many of the above posts are done by folks who actually do web development? It is pretty much indispensable these days, and really pretty awesome, so get used to it.
neorush
Platform is the wrong word. Something like node.js might be considered a platform, but not JavaScript itself. JavaScript is flexible, C-like, has first class dictionaries and JSON makes them super simple to serialize. It's one of those languages whose flexibility can actually be a hindrance because you have end up having to get pretty deep to find the structure ... maybe it is a platform.
[ECMAScript] tries to look like a member of the Algol tree, but its internals behave more like Lisp.
In other words, it implements the original plan for "M-expressions" in Lisp.
Errorhandling and exceptions are great, because they don't ignore errors, but force you to deal with them. Javascript just runs and you never know the correctness of the state.
Have you tried to use strict? That should turn more silent failures into the "error handling and exceptions" that you prefer.
My beef with JS is that it is a regression from the time of PASCAL or Ada (or should I say ALGOL ?) where good programs are nicely structured by means of proper data structures.
This means:
1.) Reliability is unecessarily low. You never know how many feet an object in variable "monkey" might have. Usually two and sometimes just one, zero or 312.
2.) Security: A lack of type-safety regularly results in insecure programs. Plus, it is quite difficult to reason about program safety in absence of strong typing.
3.) Hard to optimize: Strongly typed languages result in programs which can be quite easily optimized for execution efficiency. Compare that to JS, where the optimizer has to "infer" "typical runtime type" and then optimize for that "dynamic" type constellation. Of course, exception code must handle the "differently typed corner cases", too.
That implies: Bloated optimizer/JIT compiler plus all the nice zero-day exploits which result from this. Donning my tinfoil hat I would say JS is a godsend for the TLAs.
In summary: JS is a regression from the state of the art of 1970s. "IT" is actually forgetting the great achievements in Software Engineering that resulted in Algol. With JavaScript, computing has gone even further down the path of sloppiness and anti-reliability. Let's face it: 99% of people are in this profession for the love of money, not for the love of constructing reliable and correct systems.
Dipl.-Ing.(BA) Informationstechnik Frank Gerlach
Gäufelden
Germany
As a counter-concept, look at this invention of mine:http://sourceforge.net/p/sappeurcompiler/code-0/HEAD/tree/trunk/doc/manual.pdf?format=raw
One thing I personally like about Javascript is that it covers all three of the currently most popular programming paradigms.
You want an imperative style of development? Javascript can do that, check.
You want an object-oriented style of development? Javascript can do that, check.
You want a functional style of development? Javascript can do that too, check.
Some would argue that by covering so many different paradigms, it ends up covering none of them as well as languages that are designed for a specific paradigm from the ground up, and I wouldn't really refute this point... but it easily does all three of them well enough to still be profoundly productive when developing in any of them, and this means that a programmer is relatively free to pick the paradigm that best models the original problem when designing a solution. This, in my experience, results in shorter development cycles, and frequently much less buggy code.
File under 'M' for 'Manic ranting'
Read all about it at https://www.gnu.org/philosophy...
I've been in the industry a long time. Decades, in fact. I've worked with many different technologies over that time. Some were good, some were bad. I've worked with many different people over that time. Some were good, some were bad.
But when I look back, the worst of the technologies and the worst of the people came bundled together. They're commonly referred to today as "hipsters", and there's been a helluva lot of them involved with software development since around 2006.
Anyone in Silicon Valley, and in the industry in particular, knows exactly who I'm talking about. It's the guy who refuses to take off his fedora hat, even when meeting important clients and customers. It's the girl who wears huge glasses with no lenses and constantly complains about "sexism" without any justification (even the women in HR, who are typically hyper-sensitive to anything that could potentially be perceived as "sexism" think she's full of shit). It's the androgynous "designer" who constantly talks about "obscure" beer or "ironic" music, and who never manages to do anything productive. It's about the failed athlete who also failed out of business school, then flipped through a book on Ruby on Rails once, and now thinks he's a web developer.
These people have systematically destroyed decades of real growth and real productivity. Generally lacking any formal education in computer science, mathematics, physics, or engineering, they don't realize how wrong they're doing software development. They seriously think that JavaScript, Ruby on Rails, and NoSQL are "good technologies". Of course, anyone with any knowledge and experience sees right through this awful charade these hipsters put on.
The software these people produce is total, complete, utter shit. I can't emphasize this enough. I've seen a lot of really bad code in the past, but none of it compares to what these hipsters crank out. It's unmaintainable, it performs horribly, and it's usually written in a shitty dynamic language so it's rife with errors that any compiler would have caught. Just look at the projects that these people have worked on or been heavily involved with. GNOME 3, for instance. Or Windows 8. Or Web 2.0 sites. All of these are totally crap.
Don't misunderstand me, it's not a problem with young software developers in general. I've had the pleasure of working with many who were very talented, and they have a bright future ahead of them. The problem is squarely with those who fall into the "hipster" camp, regardless of age. They are truly a disease upon our industry, the worst I think it has ever experienced. They need to take their ignorance, stupidity, and extremely crappy technologies with them. We would truly be better off without JavaScript, without NoSQL, without Ruby on Rails, and without the hipsters.
Money explains a lot.
Try this in your favorite console: [ 10 , 1, 5].sort()
You cringe you lose.
PEBCAK itself is an example of PEBCAK
It implies that the user is a filter that takes input from the chair to input it into the computer, and does not use the monitor feedback system at all. Go ahead and draw the control flow diagram some time.
Can you be Even More Awesome?!
It's the Basic of the web generation. It is scorned, and rightly so.
Yes, it can; check out the beta.
"First they came for the slanderers and i said nothing."
I think you should stop using computers for a year and meanwhile try to get laid by an actual homo sapiens woman.
Why are you in favor of inter-species mating?
Yeah.. wassup with that? The mobile version of slash seems to have gone away the last few days. Apologies for remaining off topic.
Sorry for posting this off-topic but there is no other place to post this
feedback@slashdot.org
Most of the commenters must be stuck in 2000 as far is web development is concerned. Between jslint, phantom js, and jasmine you can have syntax validation and can use test driven development for every bit of your front end javascript code. Combine that with require js for managing dependencies along with jquery and knockout and ill write web apps that are more efficient, easier to manage, have better abstraction, are more reliable, and do it faster than pure server side web apps could ever accomplish. If your stuck in the mindset of server side mvc or god help us some proprietary web form garbage your pigeon holing yourself and will be irrelevant soon enough. A master programmer knows a languages strengths and weaknesses and uses the right tool for the job.
Remember when checking the "block popups" box actually worked? there is these annoying new kind of javascript popup that doesn't technically open a new window but just takes focus of the browser and puts itself over the content, actually worse than a old style popup! can't browser block this crap? and even the "old school popup" is making a comeback...why are browsers no longer able to stop sites from opening new windows? i'm sure there are plugins that can do it but why should i need a plugin when most browsers claim to "block popups"? what's next blinking text making a comeback? also, how is it that those circular javascrip dialogs "are you sure you want to leave the site?" that go in a circle and make it impossible to close the window should be easy enough to block but for some reason i get stuck with those regularly enough which requires me to open a console and kill the process. The continued rise of javascipt wouldn't suck so bad browser would actually stay on top of blocking the garbage.
Knowing the internals of the JS optimizers leaves me unable to think of JS being "progress" as compared to stronly typed, imperative languages.
Rather the word "clusterfuck" comes to mind.
Frank Gerlach (see my other posts here)
End of story.
shit bro ever try using slashdot in a text browser? equally ass experience, the stupid links on the left side that no one clicked on ever take about 30 seconds to tab past. for a supposedly "open source" friendly site deliberately shafting text browser users like that is a dick move, yeah i know you don't get ad revenue from text browsers but come on if this is truly a "nerds" site then you will not go out of your way to shaft the poor sap stuck in the server room with nothing but a text terminal.
It is called "programming in C using the PASCAL compiler".
It's sad we're still using a single client side language instead of having the option of running bytecode in the browser. Obscurated JS is just as difficult to read as bytecode, and the browser can also have an automatic bytecode to text "viewer".
Browers should get behind pNaCL or something similar.
that the compiler does, so at least you have to get your parameter
types right in the function call before it will compile. Plus you can
use interfaces and abstract classes to pretty much define an overall
structure and force everyone to do it roughly the same way. We've
been maintaining a quarter-of-a-million line codebase for 5+ years
now, with up to 6 active developers, and it holds up pretty well.
Javascript is certainly leagues behind many other languages in terms of ellegance but it has one overwhelming advantage. It's the only option on the client that is generally supported. The javascript juggernaut rolls on because we can't write modern web applications any other way. Since most developers are getting forced into writing their client application almost entirely in javascript, it isn't too much of a stretch to throw in node and mongo to take it full stack, the performance and ease becomes pretty compelling at that point.
...I guess, the situation is similar.
I wonder if Julia can fix some of the mess.
you can easily have sql injections in your c or c++ code if you are lazy. and prepared statements don't cut it in every case. think of dynamically adding query conditions in your c program.
Are you nailed to Lua for speed?
I have decades of industry experience in Silicon Valley as well. And really, your post comes off more as a bunch of whining than an actual critique.
wait....someone from Silicon Valley complaining about whining?
That's rich.
Is mobile.slashdot.org mandatory now? I was able to switch back to classic view on my galaxy nexus...but that was awhile ago.
JavaScript is FUCKING AWFUL, to use it in SMALL doses, fine, to use it for big projects, OH FUCK OFF:
It is the worst langauge I have ever had the displeasure to use. God knows why it is a standard given that there are BETTER languages out there.
I am a big believer in DSL's (Domain Specific Lanugages) and General Purpose Languages/Computing is really a major trade off and handicap.
If you want to do a job right, DO IT RIGHT! (Or hire a woman).
What's an SD handle? Please enlighten me, thanks.
Nobody here seems to be talking about the hacking and vulnerabilities that JavaScript brings to the table. Even slashdot had an article about what some security researchers are seeing - and they point out that JavaScript is part of the security problem. As more hacks like Target, Neiman Marcus, Yahoo and many others come to light, then the role of JavaScript in the hacks will also come to light. The general public will respond with a push towards more security conscious behaviour and JavaScript will be out the door.
For example, the Scots created this wonderful drink to help with bitching wives.
And it helps whenever JS causes Firefox to hang - like it just did while posting this comment.
Oop! Need more ice....
Septic tank promotional design pattern where the a largest shits / turds rise to the top. Same as working at Microsoft.
And hating every minute of it. I have as much time in as anyone, and I am thankful for people who think outside the box. Heck, free software and linux are "hip" and the only thing that kept MS from gobbling the world.
The non-hipster people wrote OS/2, and maybe it was fine, but it was stagnant and smelled that way. So thanks for your opinion, but I will still give props where they are due to the girl with the glasses and the guy with the fedora hat.
Thanks.
Name any language that gets popular, and the haters came out to flame it. Perl, JavaScript, whatever. The only worthwhile languages are the ones no one uses, like Erlang.
If in a room full of developers, I am an "average" developer, but I also tend to approach things logically. I do my research and choose the appropriate tool to get the job done efficiently, with code that is generally accepted by the greatest user base. My clients would not want me to hand them over a product that could not be easily understood and modified by other average developers, "Anyone know a Python developer?", "No, but I know someone that works with Ruby"... In the real world this is incredibly ridiculous. The term "average developer" is also looked upon poorly on this board, and unfortunately, this being 2014, people should not require a 4 year degree to code, code should have evolved enough by now that average people should be able to put words and thoughts into simple code and have it do what is intended. It is the hardcore developers that overcomplicate what should be incredibly simple. A business term, "Where there is pain, there is opportunity", and I hear all of the time, so-called hard-core programmers with their noses up complaining about JS. I come from a world where you do not complain about something without presenting a solution, and of all these posts there is hardly anything worthy of a "solution". Apparently there is a lot of pain towards JS, so maybe one of you smart people should chase the opportunity to build a solution; just understand that no matter how perfect you think your alternative is, if no one uses it, it is useless. I use JS as a carpenter would use his hammer, I don't complain about the hammer, but if one of you smart folk were to build a better hammer that saved me time and money, I would surely use it.
Seriously, does it really matter anymore? You want to write in JavaScript? Do it. You want to write in something else? Most other languages can be compiled down to Javascript without any major performance penalties. Basically, these days you can do whatever you want in whatever language you want, so what does it matter in the end?
The problem is JavaScript was only really designed to do small simple things, but just like the shitpile that is X86 it's been extended and kludged in ways that I'm sure the creators never intended or imagined and nowadays it is being used to run game engines, database engines, emulators and virtual machines!
The fact that you NEED a browser with a good JIT to visit JavaScript-heavy pages without responsiveness turning to molasses just shows how out of control things have gone.
It's only because we have such a ridiculous excess of CPU power that people can get away with this; It's bad enough that the web is so polluted with crap that it would take several minutes for the average web page to load over a modem or non-G3/LTE phone, but that we need accelerated or highly clocked CPUs and craptons of memory just to be able to render and run many pages makes me want to scream!
http://noscript.net/
But it still is a bit of a kludge, compared to your broader insightful point. Chrome has something similar, but I don't think it is as good.
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
Please give this language strong types. When you have megabytes of code and thousands of functions you can not rely on run time type checking. Its just too dangerous to do that.
http://michaelsmith.id.au
IMHO the problem with all these dynamic languages is that they don't have optimization keywords. You can "monkey patch" everything. You need a way to define "locked" classes in the language. Maybe the regular syntax for defining a class, but "LockedClass" instead of "Class" or something like that.
The Ruby guy I know always drops down to C after profiling the parts that aren't fast enough in Ruby. Ruby stays the glue, and the he uses whatever native code mechanism it has for the parts that need to be fast.
If the language itself had optimization keywords though, he could just stay in Ruby. C programmers hardly ever reach for assembly these days; but all the dynamic guys are reaching for C or C++ all the time after profiling.
That leads to the question--Should we introduce optimization keywords to dynamic languages, or dynamic constructs to compiled languages. Maybe the answer is "yes". Of course you can shoot yourself in the foot with dynamic code. You can write really convoluted math equations too; but nobody blames mathematical notation for papers that are incomprehensible gibberish. They blame the author, and rightly so.
Java can go diaf
It's the QWERTY of programming languages: you can't toss it because everyone would have to toss it at the same time for the transition to work, and that requires either sorcery or an apocalypse.
Table-ized A.I.
I had something like "NotScript" for Chrome in mind as opposed to Chrome's block all JavaScript option. But "NotScript" for Chrome does not have all the same features of NoScript (which inspired it) for FireFox. Related: http://hackademix.net/2009/12/...
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
And I shit all over your gay nigger framework
Lua: http://kripken.github.io/lua.v...
"Lua is implemented in portable C. It is possible to run C compiled to JavaScript at speeds approaching that of a native build (using the asm.js subset of JavaScript), which means that you can in principle run C code that happens to implement a VM at high speed as well. Of course this is theoretical until it is actually attempted - that is the point of this project."
A Sql.js demo: http://kripken.github.io/sql.j...
3D, just amazing Doom-clone: https://developer.mozilla.org/...
"BananaBread is a 3D first person shooter that runs on the web. It takes the Cube 2: Sauerbraten engine, which is written in C++ and OpenGL, and compiles it using Emscripten into JavaScript and WebGL so that it can run in modern browsers using standards-based web APIs and without the need for plugins. The project has several goals. First, to serve as a testcase for running a demanding 3D game in browsers: Having a working testcase lets us try out new browser features and to profile performance in order to make browsers faster. Another goal is to prove that games of this nature can run in JavaScript and WebGL, which many people are skeptical about. Finally, all the code in this project is open (and practically all the art assets), so others can learn from this effort and use this code to create their own browser games. The latest update of this demo uses asm.js for additional speed, and WebRTC for multiplayer."
The author's GitHub site, where there is a tool to compile LLVM output like from C to JavaScript: https://github.com/kripken
https://github.com/kripken/ems...
By others (MineCraft-like): http://voxeljs.com/
It's been said JavaScript is much better than we deserved... It's great to see all these advances. And I think you are right, the next two years will see the further spread of all this.
My own JavaScript experiments towards a social semantic desktop, with the idea that you could have a simple backend and do most of the heavy lifting of processing and displaying information locally in the browser.
https://github.com/pdfernhout/...
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
Linux Kernel Running in PC Emulator Written in JavaScript...!
http://www.geekosystem.com/linux-kernel-pc-emulator-javascript/
var myList=[5,10,1].sort(function(a,b){return a-b});
var myList2=[5,10,1].sort(function(a,b){return b-a});
The article was about Sam Newman cracking on the JavaScript is a platform (ffs), but somehow all the comments are about SQL vs yo mamma and "I've worked in silicon valley, sine before you were a twinkle in her daddies eye"..
In motion pictures, each frame is displayed for 41.7 ms. How can lip sync even be expressed to a precision of less than one frame?
I use JS as a carpenter would use his hammer...
And most posters here feel that, to paraphrase the old saw about C++, "When JavaScript is your hammer, everything looks like a thumb."
I've been programming for 30 years. Started in 6502 assembly. Have programmed in more languages than I can remember. I love JavaScript, and I use it professionally every day. Is it the best language? No. Am I still waiting for the one new programming language variant that is as awesome as JavaScript, but does everything better? Yes. But I'll happily keep using JavaScript until the better variant becomes a global standard.
And yes, I write very good code.
Lua lets you do some pretty amazing things using tables and meta-methods, but at the end of the day, I keep wishing it did things more like JavaScript.
Actually, you have a pretty good point. I've spent about five years really honing my skills in JavaScript, to the point of reading all the books on design patterns in JavaScript, object-oriented programming in JavaScript, etc. There really are many good ways to use the language in a variety of different programming contexts. However, professionally I work with several people who haven't written much beyond simple event handlers in JavaScript, or threw together some JQuery stuff without realizing how JavaScript works. And there's pretty much no way to get any of those people, under tight deadlines, to spend any more time learning about the language to not implement an ugly solution.
Are you objecting to the fact that the default sort method casts arguments to strings during the sorting?
JavaScript really has nothing in common with Basic.
That's a little harsh. Javascript, as as language, isn't *that* bad. It's got plenty of annoying things, and plenty of warts, but as a language, it's workable with.
The problems you mention are mostly solvable. "use strict" solves a bunch of them, and then use jslint (or similar) to catch the bugs your compiler normally would.
If you really want a compiler, and to get away from some of JS's more annoying bits, then switch to coffeescript (which compiles to JS).
There are very good reasons for "mobile code" to be a high-level programming language on par with (say) Algol. Low-level approaches such as NaCL have to perform extensive low-level operations to ensure nobody can break out of the execution sandbox. A type-safe high-level language just needs some sort of "private" specifier (as in C++ classes) to ensure containment of untrusted code. In addition to code controlling resource access, which all approaches require.
Non-type safe languages like C and C++ are a major enabler of the "cyber warfare domain". They are a regression from the days of Algol and their use should be discontinued. At least in a rational, peaceful world.
We just don't necessarily require Java or JavaScript for this purpose. A "completely memory safe Pascal" would fit these requirements, too. And it could be compiled into highly efficient machine language "just before execution". We could have type-safe multithreading, too.
Please refer to my language "Sappeur" for more on this (URL in another posting on this discussion page).
Garbage collection could be done using reference counting and synchronous destructors. That is an easy approach to enable (soft) realtime capability. Which is critical for high-fidelity GUI programs.
Frank Gerlach
Maybe you could be more specific instead of throwing mud. Or is it F.U.D. ?
All the things I wanted to technically achieve (memory safety, efficiency, security, type support for multithreading) with Sappeur are achieved. It might not look pretty, but it is effective.
I'll leave "making it pretty" to people without an opinion and rational thought.
I can't claim 'decades in the industry' only a half decade at best. I'm a niche developer, DSP Engineer to be specific, but I'd like to think I have enough insight to judge a bad dev from a good one. It's not that difficult to be honest. I've never met any of the types of characters that you describe in this article. Not a single time. Most of these people won't even make it to a face to face interview and even if they did they'd typically be speaking to a good dev, someone who could see through the bs facade they'd be throwing up.
Most of the devs I work with come in with tassled hair, wearing clothes their wifes/fiance/girlfriends purchase for them. They eat virtually whatever food/beer you put in front of them as they're generally too busy to be picky about these things. They don't complain about the state of the world as it pertains to androgynous behavior/sexism, they complain about Microsoft not following standards or that someone neglected to use std::unique_ptr somewhere.
Javascript, Ruby on Rails and even GNOME 3 are all tools. All of which were developed in the face of what appeared to be some shortcoming(s) of their predecessors. The tools are only as good as the person utilizing them. Clearly you've had the misfortune of working with some imaginary people who are very inept at using these tools, and hence your rant.
Nothing stops a well-funded and experiened software engineer from building a highly optimizing Pascal compiler which can restart after compilation errors. It was just that Mr Wirth focused on the concept, not an American-style implementation.
C and C++ are rotten on a conceptual level, while Mr Wirth's Pascal compiler might be not polished yet.
The FreePascal guys seem to be quite close to C++ already:
http://benchmarksgame.alioth.debian.org/u32/pascal.php
GNAT Ada, another Algol-style language, seems to be even close to C++:
http://benchmarksgame.alioth.debian.org/u32/ada.php
Fortran (which is also close to Algol than C++) seems to be highly competitve, too:
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=ifc&lang2=gpp&data=u32
Frank Gerlach
Both Chrome and Firefox got massive Google investments to "polish the turd". Think of 1000s of millions.
What they do is to retro-actively try to identify "commonly used types" during code execution time and then emit optimized code for this. Of course they always need to have an interpreter handy in case something "seldom" happens.
If they had strong typing in the first place, this kind of nonsense would be not necessary. A simple recursive-descent Pascal compiler without optimization will outperform this "clusterfuck" (my judgement) approach. Runtime of the compiler would be negligible (in the order of seconds for 100k LOC) and could be amortized over many program runs.
And that Pascal compiler would be about 1/100th of the Lines Of Code of the JavaScript optimizing JIT. That implies 1/100th of the cyber warfare "opportunities".
But given the utterings of one very senior Google person, these "opportunities" might be part of the Grand Plan. Imperium needs to dominate information, ya know.
Frank Gerlach
Why do you need proper French food if you can get a BSE Burger, courtesy of Dame Margaret Thatcher. She removed all those "too expensive" regulations which kept the BSE infectant jumping from generation to generation. When you feed cow meat to cow, you really don't need to use so much precious energy, do you ?
Boy, given the Cyber Warfare and Crime Domain, we need more frenchiness, not less. Otherwise, people will go back to paper, courier and lockbox file. And we can go to McDonalds, preparing unhealthy food.
Frank Gerlach
Gäufelden, formerly French occupied zone
Many of those "nice" and "free" things from America (C, Unix, JavaScript,Google search, facebook and Firefox) have turned out to be
A) destroying technologically more solid competition like Pascal, MPE or Ada
B) being an enabler of cyber war and cyber crime
C) a frontend/honeypot for NSA-GCHQ collection systems.
D) economically destroying any competitor. Objective is monopoly for one player.
Don't tell me Bell Labs or Google never had an agenda. Just read Mr Schmitt and then you know the agenda - more power to NY and Washington. Forgive me if I dislike this as I have no representation in Washington. I am merely a Vasall of third rank.
Frank Gerlach
Gäufelden
for killing the browser plug-in. It's not that javascript was a good option. It's the ONLY option.
believe it
You sound very threatened. Like those Java devs (not all Java devs, but I've run into lot of these guys) that they've been producing by the metric ton for about oh, twenty years (or decades if you wish) who deeply resent having to learn anything new after graduation. As any JS dev can tell you, that's a really bad hangup to have in web technology, which I'm sorry to report to you has started to touch on just about everything.
You really don't need a compiler or static types to write decent maintainable code and believe me, I've seen enough Java and C# code bases from hell to tell you that they certainly don't protect from writing complete procedural spaghetti horseshit wrapped in meaningless classes either. If people would just be bothered to understand what the whole point of OOP was in the first place, they wouldn't sweat the lack of a compiler when doing anything non-trivial in a different style of execution environment.
Have you ever learned a lisp-like language or gotten very far with C#'s first class functions? If you haven't, give those a whirl and then come back to JS and stop throwing tantrums every time it doesn't behave like Java or C or C++ just because it looks like them.
I don't know about you but I won't be trusting anybody to maintain their down-compiler as JS continues to evolve. That would be short-sighted to say the least.
Speaking as a JS dev who's had to put with some pretty ugly Java, I'd be happy if the average Java developer would content themselves with simply actually understanding what OOP is supposed to do for them rather than assuming that the 18-method-calls-to-retrieve-some-static-data-for-a-basic-web-service mess they've made is actually OOP just because it's all wrapped in classes by default.
For cross-platform desktop OS apps with node handling the file I/O and JS and web technology handling all UI concerns inside a window. Only the Python community does cross-platform as well, IMO.
I'm sorry, but the whining in this industry is getting pretty epic. Learn the !@#$ing tool. It's not Java or C#. You CAN write maintainable code without static types. JS and Python devs have been doing it for some time now. And believe you me, it would really help C# and Java devs with their primary languages if they learned how to.
I would actually disagree with the statement that it's paradigm free. While I respect C# as a feat of language design, one thing I don't like about its implementation of every language feature it can get its hands on is that it doesn't have a very strong opinion and there's just a crap-ton of syntax you have to learn as you work with it (although given the alternative I'd rather have first-class funcs in any language at the expense of bonus syntax). JS encourages OOP and functional used together and has strived to do a lot with a little syntax. Strictly imperative isn't really possible if you're using it for web UI as much of the DOM relies on event handlers and you can't really escape the topics of closure or OOP when you start doing non-trivial stuff from there. Functions can be classes or methods or in many cases both.
Today we'd have little trouble designing a better language than JavaScript for what we currently do with it, but our best bet to get something like that working is to build a language that compiles to JavaScript and then hoping browsers start building VMs for that language directly, skipping the JavaScript step.
Done
PHP is a testament to that truism.
PHP: The Good Parts would be a 1 page book