And it was learnable. I mean, you could learn every detail of the language with a reasonable effort. Just read through the manuals, which are extremely well written. Not many modern languages you can say that about.
There was a conversation in a ruby channel about this recently.
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.
I don't know if this is really a fair comparison. You can do simple forms in plain HTML if you want to, after all. No CSS required, no Ruby or PHP, no scripting, no nothing.
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!"
> 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.
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."
The web is pushing programming in a good direction, but it puts more pressure on the programmer. A good webapp not only functions well and looks good, but it's composed of components (the DOM) which are malleable and understandable by other programs. The important program is the Googlebot, but there are countless other, lesser programs (such as a bevy of bookmarklets, and even programs like Evernote) which benefit from having our applications be parsable.
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 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.
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 problem is 15 years ago had you suggested that most apps will run server-side, with an interface exposed in a browser, people would have laughed at you regardless.
People don't really remember that 15 years ago it was a monumental feat to build something usable, without having the resources of Microsoft.
I'm not so sure. 15 years ago there was a lot of hype going around about the Java, the "Network Computer" and such initiatives. Sure they didn't work out, but a lot of people and companies believed in them, so it didn't seem so far-fetched.
> The number of technologies you need to know reasonably well to do a basic business function online is nuts.
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.
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
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.
While I'm sure using clojure for the entire stack simplifies things for pros like you. It is not an adequate replacement for newbies. You still need to know: Clojure (and the lisp way of things), Java, Javascript, HTML, CSS, and SQL to understand the system. Leaky abstractions indeed.
HTML, CSS, and SQL are all fantastic domain-specific languages. It's the split between frontend languages like JS and backend languages like Ruby that's the real problem.
CSS is a waste of space and JS is rather unfortunate (though modern web frameworks are pretty good at abstracting it), but 15 years ago you'd still have wanted a declarative form language (though whether you could spare the resources for it is another question), a separate datastore, and a language for actual programming logic.
That's not true. I remember trying to learn Turbo Vision, this text-based GUI library that it came with. The reference documentation that it came with was awful and I tried doing that with the help of a book. Couldn't understand anything.
I very much disagree with this. Java is much more modern, but you can learn the entire language in some months of work.
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.
I have a 2 foot tall stack of Java manuals here that beg to differ :)
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.
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.