I mentioned that if 15 years ago you had suggested that in 2012 you would need HTML, CSS (and probably LESS), JS (and probably JQuery + CoffeeScript + Backbone), SQL or Mongo and Ruby or PHP or similar just to do a simple form application - we would have laughed.
I got shot down - "it's a web application now, so not comparable".
But I really think it is comparable. The number of technologies you need to know reasonably well to do a basic business function online is nuts.
To make it worse the number of flavours of languages or components involved and the requirement to hire vertical developers (specialising in one language) rather than developers who could understand the full domain means that business web apps are becoming unmaintainable more quickly.
These tools and languages in the hands of startup teams with above average commitment/experience/knowledge are fantastic, but for general business use they are big step backwards.
I've noticed several sites recently that are including more than one version of JQuery (and a copy of Prototype) on the same page - which is a symptom of this to me.
Don't get me started that I could press F9(?) 15 years ago and Turbo Pascal would build in 2 secs on a 386. Takes irb that long to start on this 8 core.
People are working on that. For example I've started to learn clojure and recently wrote a very simple web app using Clojurescript, Noir, Korma and a couple of helper libraries like fetch and crate. Using that stack I managed to write an entire web app without ever leaving Clojure. Everything felt like clojure and the borders between client-server-database was rather fuzzy.
You can still laugh today, either at the large amount of complexity people invoke for simple tasks or at the notion that the minimal set of these to accomplish the task ("form application") is really complex or hard. 8 years ago you'd use, say, HTML with PHP run from Apache (and Apache is largely out of your mind if you're using shared hosting..), and either text files or a simple SQL table to persist data. (Or depending on the form, just email the data.) You can still be this minimal (or even more minimal--e.g. Flask which comes with its own "Apache", even if you shouldn't use it in production) today. And the basic CSS and JS needed to make the app "pleasant" aren't difficult at all to learn and with only a bit of discipline it's not that hard to keep them from making your page into a complex hairy ball code-wise.
8 years ago was also when AJAX hype was at its greatest. Now it's more about "framework hype"; I keep this in mind: http://marc.info/?l=php-general&m=112198633625636&w=... "Before you blindly install large "AJAX" libraries, have a go at rolling your own functionality so you know exactly how it works and you only make it as complicated as you need."
While this is true on the high end there is also a massive amount of help/tutorials/documentation available today which circumvents this issue for most applications. In many situations all someone really needs is basic understanding and the ability to google effectively to find the proper snippets of code to copy/paste. Few applications get to the point in either scalability or complexity where deep knowledge of the involved technologies is required.
People don't really remember that 15 years ago it was a monumental feat to build something usable, without having the resources of Microsoft.
If you want to persist the form submissions you need to have some logic (which brings in a programming language) and a database (which brings in SQL, or maybe structured text files), but that's just as true in a single-user or client-server application as it is in a Web application. The only differences are that the fifteen-years-ago application probably used a language like Visual Basic rather than PHP or Ruby, and a simple embedded database engine like Jet (http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine) rather than a standalone database server. But the basic concept of a form-based application hasn't changed much, and the scope of knowledge you need to build one hasn't changed much either.
I've noticed several sites recently that are including more than one version of JQuery (and a copy of Prototype) on the same page - which is a symptom of this to me.
This is more of a symptom of idiots having access to programming tools. Idiots haven't changed much in the last fifteen years either. There were plenty of line-of-business apps written in (say) VB whose code would make you scream "Burn it! Burn it with fire!"
iRobot, your account has been banned for over 100 days. Unless someone turns on the "show dead" switch in their profile, they can't see what you post.
;-)
This is a major reason I don't do any web programming. I don't exactly know where to start any more, and every few months when I think about throwing something together, there's been some change in what's fashionable - whatever was hot at the beginning of the year is now 'considered harmful' and so on.
I'm actually a bit encouraged by adobe Edge because I like their tools and Flash had a decent run, so I may get back into it. But I am so not into technology for its own sake.
The biggest thing holding back web programming is not JavaScript, but CSS. Making stuff look good is way too hard. I know a lot of programming languages, but CSS is by far the hardest language I've ever had to learn - the interpreter is a black box, properties are strangely coupled, and there is no error reporting or insight into the layout engine. Not to mention that it is difficult if not impossible to accurately know which selectors apply to an element short of actually running the page and checking in a tool! But I digress.
The fact is that we're paying the price now, but I think it's worth it.
I will grant you that it will take longer to learn all the libraries you want to use, along with the entire Java standard library, effective design of Java programs, etc.
But the languages haven't gotten much bigger over the years.
Java is big, the java ecosystem is huge.
Sure, it does more than turbo pascal, but if you're able to go from 0 to learning the entire language in a few months of work then you're a pretty hard worker!
Going from 0 to knowing turbo pascal (language, ecosystem, ide) inside out in a few months is no remarkable feat.
Java is big, the java ecosystem is huge.
Sure it is. However you don't have to learn all of it.I never learned much about Swing, AWT, JSP, JSF, EJB, Struts, Spring, Hibernate and all that crap. I tried them out at some point, but eventually I had the common sense to just say no.
You're basically comparing a language with the entire ecosystem of another. I remember trying to make MOD files play in Turbo Pascal, which left me with about 200k of memory for whatever else I wanted to do. I remember trying to read BMP files and because I had no available libraries, I had to implement the functionality by my own (and forget about GIFs or Jpegs). I remember trying to create a window with a button in Windows 3.11 and for some reason whatever I did was freezing my computer, so I had to reboot all over again, until finally giving up in agony.
I know at least one man that gave up on programming when the transition to Windows happened, because Borland Pascal was so goddamn awful for anything not involving a text interface running in 286 real mode - that it left that man with the impression that programming was not for him.
Yes, you can go from 0 to "knowing turbo pascal" in a short time. However that doesn't mean much, when in that same time you can accomplish so much more in a modern environment, even if you end up just scratching the surface.
But to learn "the entire" language is impossible (this applies pretty much to everything today)
But Turbo Pascal is probably the size of JS+jQuery today (in number of "things" you can do)