12

I'm just wondering about the future of it all. IMHO, there are 4 forces that define where technology goes: Microsoft, Apple, Google, Adobe.

It looks like in Apple's iPhone/iPad iADs can now be programmed in HTML5. So does that mean HTML5 will eventually replace objective-c?

Also, Microsoft has now shifted it's focus from WPF/Silverlight to HTML5 and I assume Visual Studio 2011 will be all about tooling support for HTML5. Because that's what Microsoft do. (Tools). In a few months IE9 the last major browser will support HTML5.

Similarly Adobe is getting on the HTML5 bandwagon and allows to export flash content to HTML5 in their latest tools.

And we all know how much in bed Google is with html5. Heck, their latest Operating System (Chrome OS) is nothing but a big fat web browser.

Apps for Mobile (i.e., iPhone, Android, WM7) are very hard for a company to program especially for many different devices (each with their own language) so I'm assuming this won't last too long. I.e., HTML5 will be the unifying language. Which is somewhat sad for app developers because now users will be able to play the "cool" html5 apps for free on the web and it'll be hard to charge for them.

So are strongly-typed languages really doomed, and in the future, say 5-10 years, will client side programming only be in HTML5? Will all of us become javascript programmers? :) Because the signs are sure pointing that way...

8
  • 1
    Those progressive enhancement advocates must be rolling in their graves by now.
    – Gio Borje
    Dec 23, 2010 at 4:35
  • 2
    are you saying the benefits of strong typing will no longer be needed? Aug 5, 2011 at 20:31
  • 1
    I think it will be VS 2012, not VS 2011.
    – DeadMG
    Aug 5, 2011 at 21:21
  • 6
    If that is the case, I will just have to kill myself.
    – Job
    Aug 6, 2011 at 2:23
  • 2
    I'm tired of worrying about browser compatibility. It's so damn childish. Aug 6, 2011 at 8:59

7 Answers 7

14

I think it's misguided to suggest that HTML5/JS will replace ALL client-side languages. Will a lot of applications go that way in future years? Yes, probably. Will all of them? No.

The other major point to note is that the landscape is constantly changing. HTML5 is a great technology that promises to solve a lot of the issues developers are currently having when trying to write applications that work cross-platform. Sure, HTML5/JS can solve many of those problems, but the landscape will change and a new set of problems will crop up. HTML5 will eventually seem dated.

In 10 years, ask yourself whether HTML5/JS was the solution to all the problems and I can all but guarantee the answer will be no. In 20 years the question itself will probably seem ridiculous.

2
  • +1 I completely agree. Look back in history a little, the "latest and greatest" is always replaced by the new "latest and greatest". That is part of what is so great about programming, it will always evolve.
    – Beth Lang
    Dec 23, 2010 at 5:50
  • things evolve at different speeds though - like computer user interaction - punchcards, then keyboards, then mice - i often wonder what's next because that might prove a major game changer in client app dev - speech, 3D - they add on - but will something replace keyboard/mouse? I think so - though not sure when. Aug 5, 2011 at 20:26
6

Javascript is a very poor programming language. Translation from statically typed programming languages, such as Java with GWT, is becoming increasingly common. Javascript might become the same kind of unifying language as assembler — you can write in it directly, but rarely is it a good idea.

5
  • 1
    Don't know about only statically-typed languages, but if you throw jQuery or MooTools or the like in there, I'll agree with you :)
    – Damovisa
    Dec 23, 2010 at 5:39
  • 8
    I disagree with you that JavaScript is poor language, this is absolutely not correct! :) As it seems there are lot of lazy programmers who knows Java or another server side languages for many years and they do not want to improve themselves by learning new languages and they say JavaScript is poor :D That is why there are so many tools and frameworks to generate JavaScript with server side languages! JavaScript is not a web toy, it is a real language!
    – Zango
    Dec 23, 2010 at 7:48
  • I disagree as well. I believe it is a misplaced comment to say such about JavaScript. Many professionals and successful products would disagree. Time is the best test, and so far JS is doing a great job weathering the tech clock.
    – user29981
    Aug 5, 2011 at 21:02
  • I can't imagine why I would prefer writing 50 lines of Java, hoping that my change can be hot-swapped, when I could write ten lines of Javascript, and just reload the page. Or have web server restarts been eliminated when I wasn't looking? Aug 6, 2011 at 4:13
  • 5
    I've written commercial software in about a dozen languages during my career and I write JavaScript on a daily basis. JavaScript is a reasonable language considering it was devised and implemented over a few weeks in 1995. Even so, I can't understand JavaScript apologists. It has serious flaws that require responsible coders to completely avoid certain language features, and use others in ways not originally intended in order to provide missing functionality. Maybe they don't use it for large projects? I've found that using it for large systems with many coders is relatively difficult. May 31, 2012 at 1:06
1

Yes.

Here's why. Apps are composed of user interface code and back-end data. User interface code is run in HTML5/CSS3/Javascript. Back-end code can be proprietary and run in whichever language. Furthermore, jQTouch and similar libraries can be used to emulate iPhone-like UIs but open-source and written in Javascript/HTML5/CSS. jQTouch has shown that if the browser gives JS programmers access to the UI events of the device, JS programmers will emulate whichever UI style that is in fashion for the same platform.

Javascript programmers will be more in demand than ever. In a model-view-controller architecture, the model and controller are in the back-end, but the view code is best written in the browser. i.e. HTML5, Javascript, CSS. And you need to write JS code to access the back-end data, especially with heavy AJAX code.

The productivity gains will all go to the dynamic interpreted languages. As processors get faster and faster, programmer coding productivity, sysadmin productivity, and app-admin productivity are stronger influences on overall productivity. You simply don't have to worry about how fast your programming language's VM or compiler performs anymore. You need to worry more now about how much it costs to provision and support your app.

Most stand-alone apps are not that great in my opinion. Just like there are few great stand-alone PC apps, and the best ones are being transformed into web apps. It is actually better to give away the HTML/JS/CSS client app for free and charge a monthly fee for access to the back-end data and business logic. Programmers will do better selling subscriptions than one-shot apps.

BTW have a look at this video on writing a part of a standalone web app on a Webkit browser. It is interesting...

7
  • 1
    Well one nice thing about "one-shot" apps is that atleast you don't have to do the whole annoying username/password like you almost everywhere in the web. State is saved locally. Also, alot of client side apps don't really need a back-end. Think flash games. And who in the world buys subscription for soccer mom flash games? Noone. And who in the world buys mobile apps? everyone. Unfortunately tho, I fear html5 will kill the apps. It was nice to have independent developers making money for once.
    – Shnitzel
    Dec 23, 2010 at 6:28
  • @Schnitzel - Independent developers will make money if they also build a back end.
    – Jay Godse
    Dec 29, 2010 at 22:50
  • 2
    -1 for "The productivity gains will all go to the dynamic interpreted languages" - that is very false in my opinion. I am much more productive in static typed and compiled languages like Scala. I find errors much faster, directly in my IDE, than I had with dynamic languages like PHP, Python and Ruby.
    – Jonas
    Aug 5, 2011 at 20:29
  • I really can't see any benefit for using PHP/Ruby/Python instead of Scala.
    – Jonas
    Aug 5, 2011 at 20:31
  • @Jonas - Your own question at programmers.stackexchange.com/questions/7516/… suggests that dynamic languages lead the productivity pack.
    – Jay Godse
    Aug 7, 2011 at 12:23
1

There is a will to replace application coding languages such as C++, Java... with HTML/Javascript. There are many reasons behind that, some of them:

  • Faster development
  • Cheaper workforce
  • Connectivity is built in
  • Easier to produce something that looks good
  • Text is accessible to indexing engines

Yet maybe other languages will appear, to be used as drop-in replacements for JavaScript. After all, it's hard to have a language that can do everything right, while staying a high level language! And JavaScript has been around for a while and accumulated some shortcomings.

JavaScript might very well end up being the major language for client side, yet I don't think it can nor should be the only language, because, JS being a standards-driven, designed-by-commitee language, this will simply kill innovation at that level (programming languages).

0

It also depends on the skill of majority of developers and the tools they use. The technology giants you mention can drive a technology based on the tools they provide. For example, people say HTML5 is Flash killer but I feel thats just too far away there are many Flash developers and it is a daunting task to shift their skills to JavaScript. What eventually happens the skill remains same but output becomes different. In this case, Adobe comes out with HTML5 conversion tool.

Also, you have to think about performance of client applications. Where it is necessary, platform specific tool will be utilized. Takes games and iOS apps for example. I know WebGL is coming out good but I feel people still use C to create games. Or they'll create a game language that creates high performance games. Apple initially wanted only webapps but when developers saw the wonders of Cocoa they jumped on it to create classy apps.

To sum it up, there will always be new tools/language/technologies that'll always be cooler than the current ones.

0

Not all but probably most. Maybe javascript can become fast enough to replace HashCalc but theres no web alternative to VLC (browsers wont support all those codecs). I doubt webbrowsers will let me access any file i want or store a recent file list (without a 'is this ok to access' everytime i click on the recent file) and i dont like the idea of distributing apps that are 99% web browsers (several mb) with my 100kb of code when it comes to cases where code breaks bc browsers are not backward compatible with the html or i need a variant/slight modification of webkit.

-edit- also i like static languages rather then dynamic but i am assuming i can use a good language with LLVM which should be supported by the browser.

-1

I think we'll keep going in that direction until the browser becomes the operating system and then everything will start to re-cycle in the same order but with lessons learned and improvements.