Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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...

share|improve this question

closed as not constructive by Yannis Rizos May 31 '12 at 3:55

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

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

7 Answers 7

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.

share|improve this answer
    
+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 Whitezel Dec 23 '10 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. –  Aaron Anodide Aug 5 '11 at 20:26
add comment

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.

share|improve this answer
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 '10 at 5:39
7  
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 '10 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 '11 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? –  kevin cline Aug 6 '11 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. –  PeterAllenWebb May 31 '12 at 1:06
add comment

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...

share|improve this answer
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 '10 at 6:28
    
@Schnitzel - Independent developers will make money if they also build a back end. –  Jay Godse Dec 29 '10 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 '11 at 20:29
    
I really can't see any benefit for using PHP/Ruby/Python instead of Scala. –  Jonas Aug 5 '11 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 '11 at 12:23
show 2 more comments

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).

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment