Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Google

Google Engineer: We Need More Web Programming Languages 309

itwbennett (1594911) writes Web applications may one day surpass desktop applications in function and usability — if developers have more programming languages to choose from, according to a Google engineer. 'The Web is always available, except when it is not,' said Gilad Bracha, software engineer at Google and one of the authors of Google Dart, speaking to an audience of programmers Wednesday at the QCon developer conference in New York. 'It isn't always available in a way that you can always rely on it. You may have a network that is slow or flaky or someone may want to charge you.' Therefore any Web programming language, and its associated ecosystem, must have some way of storing a program for offline use, Bracha said. The Web programming language of the future must also make it easier for the programmer to build and test applications.
This discussion has been archived. No new comments can be posted.

Google Engineer: We Need More Web Programming Languages

Comments Filter:
  • Why? (Score:4, Insightful)

    by Anonymous Coward on Thursday June 12, 2014 @09:31AM (#47221465)

    any Web programming language, and its associated ecosystem, must have some way of storing a program for offline use

    So what's the point of this being a "Web" language? Why not just keep downloading apps like we always have?

    • by mwvdlee ( 775178 )

      Isn't Phonegap/Cordova effectively for making downloadable, offline web applications?

    • So what's the point of this being a "Web" language?

      The make Chrome even more attractive when Google introduces their new web language?

    • Genuine question, here, since I've never done any web dev. Why not write libraries in an existing language that spit out HTML/Javascript/PHP/whatever? Why do we need a new language to do this?

      It sounds more like Google needs not a new language for this intended use, but some sort of new browser plugin that handles offline storage of web apps. I really don't get the emphasis on new language here.

      • Re:Why? (Score:5, Informative)

        by putaro ( 235078 ) on Thursday June 12, 2014 @09:57AM (#47221683) Journal

        Those do exist, for example Google Web Toolkit (GWT) which spits out Javascript and HTML from Java code that you write and manages the communications between the Javascript in the web page and the Java code running on the server. There are difficulties, though, because Javascript and HTML are really kind of sucky for running GUIs and it takes tweaking to get everything looking good in every browser.

        Personally, I think that running complex applications inside the browser is just plain stupid but it keeps on getting pushed at us.

        • Personally, I think that running complex applications inside the browser is just plain stupid but it keeps on getting pushed at us.

          The obvious answer is to make the browser better at running complex applications. There is obviously a need for a browser which can run complex applications.

          • What we really need is a decent language (not some scripty shite) that allows you to write mini programs that run inside the browser but walled off from the rest of the machine, except where the user permits access.

            How about we call them progmins, that's catchy!

            Nah, silly idea. I'll get me coat.

          • The obvious answer is to have a cross-platform sandboxed runtime enviroment that doesn't suck. It does not to be bundled in the browser, but it could be.

        • by judoguy ( 534886 )
          Hear, hear! I've spent decades building back office applications. The interactivity demanded by my users FAR exceeds anything a browser based system can provide.

          Not to say browser based applications aren't great, even the only way to go for some stuff. They really are, but some things (highly data centric, tightly integrated with other software for maximum utility) aps are best handled by "fat client" applications.

          • This happens because the desktop UI has "spoiled" users and application requesters. We as developers cannot say "it can't be done" because it can be done and they've seen web applications or demos that do make their browser act like a desktop GUI.

            However, the web standards are poorly fitted for desktop-style GUI's such that we have to "force it" with tricks and micromanaging low-level details with kludges, including dealing with browser-version-specific differences.

            But forcing it results in a web applicatio

      • Re:Why? (Score:5, Insightful)

        by jythie ( 914043 ) on Thursday June 12, 2014 @10:26AM (#47221933)
        Because developing new languages and ecosystems is fun, sexy, and gets you attention. Working in old fuddy languages with rich existing support requires reading books and bowing to other people who have already figured problems out. Bad for the ego.
      • There are already such translaters.

        I am using GWT(Google webtoolkit) which take java code, and compiles it to javascript which can run in a browser.

         

      • by neoform ( 551705 )

        PHP is a server-side language. No one spits out PHP, PHP is used to generate HTML.

      • Genuine question, here, since I've never done any web dev. Why not write libraries in an existing language that spit out HTML/Javascript/PHP/whatever? Why do we need a new language to do this?

        On the server side it's already pretty easy to use whatever language you want. There's the CGI protocol that gives a well defined interface between the server and any arbitrary program running as its own process. Most servers also have a way to run code in written various languages directly without the overhead of spa

        • On the server side it's already pretty easy to use whatever language you want.

          Unless the server refuses to execute executables in the user's directory.. This is common on, say, low-end shared web hosting plans that provide PHP and only PHP.

          • by dave420 ( 699308 )
            You should upgrade your hosting to something equally cheap which offers proper language support. Oh, it's tepples. Never mind. Pray on it or something.
            • You should upgrade your hosting to something equally cheap which offers proper language support.

              I agree. But some people end up signing up for hosting without proper language support, unaware of all the options because becoming aware itself has costs [wikipedia.org], and then their needs grow while they're still locked into a contract.

      • Genuine question, here, since I've never done any web dev. Why not write libraries in an existing language that spit out HTML/Javascript/PHP/whatever? Why do we need a new language to do this?

        It sounds more like Google needs not a new language for this intended use, but some sort of new browser plugin that handles offline storage of web apps. I really don't get the emphasis on new language here.

        Because the more of your technology you can get people using, the more control you can exert over them.

    • by alen ( 225700 )

      how else can google track everything you do?

    • by Qwertie ( 797303 )
      It shouldn't just be a web language.

      Developers shouldn't have to choose between "code that runs in a browser" and "code that runs on a server". They shouldn't have to choose between "code that runs in a browser" and "code that runs fast". They shouldn't have to choose between "code that runs in a browser" and static typing, or macro systems, or aspect-oriented programming, or parallelizable code, or whatever.

      The problem as I see it is that the "browser languages" are dictated "from on high" by makers
      • by jythie ( 914043 )
        The quest for a 'perfect' language generally just results in people taking perfectly good languages and complicating them to the point they start handling their intended function worse and worse.

        Yes, developers SHOULD have to choose. When you are dealing with drastically different contexts and environments there are going to be trade offs. We could potentially make languages look the same through similar syntax, but they are not going to be the same language and should not be.

        As for why the browser only
        • Thank you. That was the first realistic assessment I've noticed so far in this discussion.

          There is no programming language that is ideal for all contexts, nor any VM that supports all use cases well. There can't be, because there are some fundamentally contradictory goals that simply can't be fully reconciled. For example, you can't have a language that efficiently manipulates hardware for systems programming yet which also lets you run general applications downloaded from untrusted sources in a safe sandbo

          • by Qwertie ( 797303 )
            There is no reason that a single /language/ could not support efficient hardware manipulation and also run in a sandbox (with C-like efficiency). If you're writing an OS kernel or /directly/ manipulating hardware then it will not run inside the sandbox, but that doesn't mean the same programming language could not be used for both. NaCl has demonstrated this already, since you can run C code in a sandbox in a web browser and you can also write a kernel in C.

            But C/C++ are difficult to use (I'm sorry, "cha
      • Are you kidding me? CLR is GREAT for rust! [jelmar.com]
    • by jythie ( 914043 )
      It is almost like they want a language that uses some kind of VM so it can either be run inside a web page or as a stand along executable, possibly with good network support for interacting with remote servers. Someone should create a language like that.
      • Maybe I'll come up with something after a few cups of coffee, perhaps a shot of espresso and a latte. Let's talk more later, right now I'm gonna head over to the Java shop down the street.
    • any Web programming language, and its associated ecosystem, must have some way of storing a program for offline use

      So what's the point of this being a "Web" language? Why not just keep downloading apps like we always have?

      It's harder to monetize that way. Buy software for $295 and use it for 10 years, company gets $295. Buy the web version for only $50/year and the company makes $500 over the same period. From the consumer (whether a business or individual), there is the appearance of a lower cost of entry. For the vendor, there is a steady revenue source and increased profits.

      It's like the difference between purchasing a new car and leasing one. If the consumer's goal is to always have a new car, leases work great. If t

    • Having to ship fourteen apps for fourteen platforms is not fun, especially when you could make, test, and deploy a web app before even completing the paperwork to become a licensed developer on half those platforms.
  • "Web programming language is a buzzword that I heard before since 1994-1995 over and over and over and over and over again. Here is one joke about one of the "Web programming languages" from that era:

    --Knock knock!
    --Who is there?
    --... (wait one minute before replying... And then:) Java!

    But for some reason, every declared "web programming language" seem to not having universal adoption.
    Question is: Why, and why are they talking about it again and again?

  • Translation (Score:4, Funny)

    by NotDrWho ( 3543773 ) on Thursday June 12, 2014 @09:42AM (#47221549)

    Translation: Google is about to introduce yet another web language into this Tower of Babel

    • by NatasRevol ( 731260 ) on Thursday June 12, 2014 @10:21AM (#47221895) Journal

      It should be called the Tower of Babbage.

    • Translation: Google is about to introduce yet another web language into this Tower of Babel

      Better translation: Some engineer who works for Google and is interested in web programming languages wants to create a new one.

    • by Salgat ( 1098063 )
      They already have; it's called Dart. I have used it and it's terrific. It's a combination of the look of C with the feel of Python, and it's compile-able into javascript.
    • by Rinikusu ( 28164 )

      As noted elsewhere, Gilad Bracha is also behind Newspeak [newspeaklanguage.org].

      From the newspeak page:

      There are two such changes ongoing at the moment. One is the continuing evolution of the internet. There is growing demand for applications that work well on and off line, combining the ease of maintenance of web applications with the high quality user experience of local clients

      And frankly, I'm down with more smalltalk/squeak languages, simply from a personal interest standpoint. I've been playing with Pharo and I'm actually happy to see this.

  • by menkhaura ( 103150 ) <espinafre@gmail.com> on Thursday June 12, 2014 @09:49AM (#47221607) Homepage Journal

    The good thing about standards is that there are so many to choose from.

  • We don't need more web programming languages. Just one good one.

  • Of course we had Java applets for that.

    Then standalone flash-apps

    and then AIR.

    Somewhere inbetween the web-app and the local app we had the dreaded ActiveX.

    And didn't both Firefox and chrome offer, but fail to establish some container format to add mostly local HTML&Javascript archives to the start menu and work similar to local apps?

    HTML5 at least put a standard onto local storage.

    And I'm completly leaving out Silverlight-Apps as I can't exactly remember their intended purpose. (But I'm pretty sure it w

  • by H3lldr0p ( 40304 ) on Thursday June 12, 2014 @09:59AM (#47221695) Homepage

    So how about that? A programming language that'll download and store a program for later use just in case the network connection isn't stable or available. Sounds good to me. Having more than one way to get a program is a great thing to do.

    Seems to me that if I can't rely on my network I'd want some sort of storage media that'll let me back up or reinstall the base program. It should also be light and easy to transport with plenty of additional storage space, just in case of anything.

    Seriously, the older I get the more I find out that everything old is new again.

    • Really, though! I remember when a spreadsheet app fit on a single floppy and had every feature that Google Docs spreadsheets have today. To use Google Docs (arguably, the smallest office suite available today), I need a web browser (56.2MB for Chrome, 57.6MB for Firefox, so 44-45 floppies), then a 2.2MB download just to open a blank spreadsheet (2 floppies), so a simple spreadsheet app has grown more than 46x in size over the past 20 years?

      But, it's in a browser now, so it's new, right?
  • Oblig. xkcd (Score:5, Funny)

    by Anonymous Coward on Thursday June 12, 2014 @10:00AM (#47221711)

    http://xkcd.com/927/

  • Just adapt existing languages so that they run inside web containers?

    There are currently several HUNDRED different programming languages available right now. Why the fuck do we need more? Why does everyone feel the need to crank out new 'languages', when 90% of them are just derivatives of existing stuff and don't actually provide anything of value apart from making things that much more difficult for developers in general?

    We need *less* languages, not more. Software quality has gotten really bad over the p

    • Re:Or maybe... (Score:5, Insightful)

      by BasilBrush ( 643681 ) on Thursday June 12, 2014 @10:33AM (#47221969)

      I'm a old fogey. And I welcome new programming languages. Because the existing ones suck so much.

      When do you suggest we should have stopped? With COBOL as the major language? or C? With PHP as the major web language? With PERL is the major scripting language?

      Bring forth every language anyone wishes to invent, and let the good ones rise to the top.

      Software quality is a different issue. And most of it is in unrelated to language. But on the language side, new languages can help. Take Swift vs Objective-C. Many or most fatal bugs and security vulnerabilities with C languages revolve around stray pointers, exceeding bounds, and omitting breaks in case statements or braces around if blocks. These are simply not possible in the new language. And thus software quality will be improved.

      • Re: (Score:2, Funny)

        by Viol8 ( 599362 )

        "These are simply not possible in the new language. And thus software quality will be improved."

        What type of software? Good luck writing device drivers in Swift. Yes I know its a niche area, but you know, it is kind of an important one.

        If the new languages that came along brought something new to the table then no one would complain, but often its just the same old cola with a bit of extra sugar. Wooah , garbage collection! genetic types! no pointers! Yeah, I'm really going to spend months getting up to spe

      • And the only reason this is necessary is that, once a language becomes popular, people try to use it for things it wasn't meant for, then extend it to be able to do those things, all the while making it worse at everything else. We need to go back to a "right tool for the job" mentality (and if the tool for your job doesn't exist, create it, don't break *my* tool to make it work for you), create a new set of languages from that point, and be done with this.
      • by Bob9113 ( 14996 )

        I'm a old fogey. And I welcome new programming languages. Because the existing ones suck so much. ... With PHP as the major web language? With PERL is the major scripting language?

        I too am an old fogey. But I welcome new programming languages because the existing ones are so good. If we had stopped with PHP, Perl, and Python, just because they are so good at what they do, we wouldn't have Groovy, Ruby, or Clojure -- which are good in new and interesting ways.

        Bring forth every language anyone wishes to inven

    • by Alomex ( 148003 )

      Why the fuck do we need more? Why does everyone feel the need to crank out new 'languages', when 90% of them are just derivatives of existing stuff and don't actually provide anything of value apart from making things that much more difficult for developers in general?

      You answered your own question there. First we need things that are a bit more than derivative. But we also need a language that truly cleans up all the messes of the C/C++/Java family, starting with

      if (a==b)

  • by goruka ( 1721094 ) on Thursday June 12, 2014 @10:06AM (#47221753)
    Web browsers should at this point be able to parse some sort of bytecode that can be translated to native. This way anyone can use whatever programming language he or she pleases. Google did a great work with PNaCL, but I don't think that will ever gain traction from the other vendors.

    Mozilla's ASM.JS is much better idea and much closer to a real-life usage scenario, but Google itself is not doing enough to promote it and their support is half assed (even though It would definitely benefit them).
    • by Nkwe ( 604125 )

      Web browsers should at this point be able to parse some sort of bytecode that can be translated to native.

      You mean like Java Web Start [wikipedia.org] or .Net Click Once [wikipedia.org]?

    • by Qwertie ( 797303 ) on Thursday June 12, 2014 @11:59AM (#47222667) Homepage
      I really don't agree with asm.js as the solution, although I do advocate a VM-based solution. asm.js is an assembly language inside Javascript:

      function strlen(ptr) { // get length of C string
      . ptr = ptr|0;
      . var curr = 0;
      . curr = ptr;
      . while (MEM8[curr]|0 != 0) {
      . . curr = (curr + 1)|0;
      . }
      . return (curr - ptr)|0;
      }

      Code written in asm.js is isolated from normal Javascript code and cannot access garbage-collected data (including all normal Javascript objects). I'm not sure it's even possible to access the DOM from asm.js. So, the advantages of asm.js are:
      1. - Non-asm.js Javascript engines can run the code.
      2. - "Human readability" (but not that much; asm.js is generally much harder to follow than normal code.)

      A main reason to use asm.js is that you need high performance, but running in a non-asm.js engine kills your performance. Granted, performance isn't the only reason to use it.

      But with most web browsers auto-updating themselves, there's no need to restrict ourselves to only JS in the long run. Whatever is standardized, all browsers will support. As for human readability, that's definitely an advantage (for those that want it), but [binary] bytecode VMs can be decompiled to code that closely resembles the original source code, as tools like Reflector and ILSpy have proven for the CLR.

      The disadvantages compared to a proper VM are several:

      • - Poor data types: no 64-bit integer, no vectorized types, no built-in strings.
      • - No garbage collection.
      • - No rich standard library like JS/Java/CLR
      • - Ergo, poor cross-language interoperability (interop is C-like, rather than CLR-like)
      • - Slower startup: the asm.js compiler requires a lexing and parsing step.
      • - Extra code analysis is required for optimization. The code is not already stored in a form such as SSA that is designed to be optimized.
      • - Code size will be larger than a well-designed bytecode, unless obfuscated by shortening variable and function names and removing whitespace.
      • - No multithreading or parallelization.
      • - Poor support for dynamic languages (ironically).
      • - No non-standard control flow, such as coroutines or fibers or even 'goto' (some [non-goto] primitives in other languages do not translate to JS and goto may be the best translation).

      If you add enough features to asm.js to make it into a truly great VM, it will no longer be compatible with Javascript, so the main reason for the Javascript parsing step disappears.

      So as it is now, I feel that asm.js is kind of lame. However, it would make sense if there were a road map for turning asm.js into a powerful VM. This roadmap might look like this:

      1. 1. Assembly language with very limited capabilities (today).
      2. 2. Add garbage collector, 64-bit ints, DOM access, etc., with an emulation library for non-asm.js engines.
      3. 3. Carefully define a standard library designed for multi-language interoperability but also high performance (don't just mimic standard Javascript).
      4. 3. Define a bytecode form to reduce code size and startup time.
      5. 4. Add the remaining features that are impossible to support in Javascript. Programs that still want JS compatibility can be careful not to use such features.
      6. 5. Change the name: it's not JS anymore.
  • I think we might say we need a better language. That said, the web is a riskier medium from a security stand point. I don't know if I want more powerful programs running at that level because you could as easily have worms written into the damned things.

    I already use noscript on most sites to disable everything but HTML. I really don't want to put up with more of this stuff since most of just makes the site slower, delivers ads, tracks my movements on the internet, or attempts to throw pop ups all over the

  • What it takes to create more great app is more about a decent support for modern form elements than a new way to tweak stupid useless dom elements endlessy. How about native table with locked rows/tables ? How about native searchable combos ? etc etc etc... Yes, we can reinvent this weel forever via jQuery + some plugin + ..., but it takes so much wasted energy to do so.

    Another language is not necessary a bad thing, it's just not a priority to me. Far from that. Javascript is quite decent when you take the

  • I don't know what Bracha has up his sleeve but I know if he's recommending it it won't be good for the rest of us!
  • You see yacc, yet another compiler compiler, is feeling very lonely. So the busybodies of the village have gathered together and are tying to setup yacc with yawl, yet another web language. It is perfect. Match made in heaven. Each is fulfilled by the other. Each have the other as their raison d`etre .
  • Let's stay with Javascript...
    • only riff-raff think that's a serious and well designed language. its the QBasic of the web, panders to morons

  • This has nothing to do with programming languages. It's the entire server / HTTP / HTML / web browser infrastructure he's complaining about. You've got a document format (html), originating from servers (PHP / Java / whatever) with embedded scripts (javascript), which can dynamically modify the HTML document (DOM / DHTML), as well as making additional requests to and from the server ("AJAX"), most recently extended via rich multimedia standards (WebGL, Web Audio API). The whole thing is a kludge that has

  • by PPH ( 736903 ) on Thursday June 12, 2014 @11:50AM (#47222583)

    Some of our best CS minds are already working on it [esolangs.org].

  • 'The Web is always available, except when it is not,'

    That was dumb. And o-so-Goglish.

    Maybe if you live in an urban area the web is nearly ubiquitous and nearly always on but even then the lights go out.

    Out in more rural areas the web is not everywhere and not always on.

    So Google's only talking for the half the population living in cities. Better have a paper back book available for when the lights go off, or relearn how to talk to other people...

  • So a guy who makes an alternative language for web programming thinks we need options! OMFG!

    Let's remember, we had options; they died. People bitch about JavaScript, but it was so dominant that it killed VBScript, Applets, ActiveX, JavaFX, and now it has Flash on the ropes. As "horrible" JavaScript is, it is the best. And having one language is nice because it keeps everything compatible.

  • Not that Javascript doesn't have faults, but what exactly is it about Javascript that means it can't be used offline? The only real hurdles to writing 'offline' apps in Javascript are the lack of traditional local file access and other anti-cross-site-scripting features in browsers which have nothing to do with Javascript itself and everything to do with security concerns that would affect any 'web language'.

    I give you, for example, GitHub's new "Atom" editor which, as far as I can tell, is mostly Javascri

  • Look how well all those IE 6 only apps worked out. Now that was computin'!
  • We don't need even ONE more programming language. We need at most one or two programming languages that aren't shit.

    IMHO upgrading javascript to a full blown programming language that can run in, or outside of a browser would be sufficient. Contrary to beliefs of idiots who think programming should be difficult, there's no value in making anyone learn an entirely new syntax and language to get some mundane work done. It's a programming language. They all do the same thing.

    Bottom line? Expanding a current pr

THEGODDESSOFTHENETHASTWISTINGFINGERSANDHERVOICEISLIKEAJAVELININTHENIGHTDUDE

Working...