Announcement

Collapse
No announcement yet.

SIMD JavaScript Support Added To Firefox, Under Review For Chrome

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #41
    Originally posted by ravyne View Post
    But why should it be that way and remain so?
    The reason why is that Javascript was not designed to be a general purpose programming language it was designed to be a domain-specific language and it shows all over the place in the design. Trying to take a domain specific language and force it to act as a general purpose language pretty much always causes trouble. Perl for instance is actually great at doing text processing and small shell utilities, the reason why it has the reputation it does of creating unmaintainable code is that people decided that they liked it so much that they were going to use it for everything and as a result they created unmaintainable horrors because Perl wasn't designed for that. You might think: "Oh but they can fix that by evolving the language" The problem is unless you're willing to do a complete break, you're going to have the Xorg problem where there's this core of the language that you cannot touch.

    Again Javascript is fine as a UI-layer specific language, but it's folly to expand it beyond there.

    Comment


    • #42
      Originally posted by Luke_Wolf View Post
      Again Javascript is fine as a UI-layer specific language, but it's folly to expand it beyond there.
      That is why Google have developed Dart.
      Whatever you think of Javascript (I don't like it) the web is the only truly portable
      platform and developing for it in sane languages (Dart) is a real possibility.

      Comment


      • #43
        Originally posted by caligula View Post
        There are many reasons to use dynamic languages.

        First, it can be tested even if it would not compile.
        Two words for you: Static Analyser.
        Two more words for you: REPL loop.
        The first is nearly if not impossible with a dynamic language, and you don't need a dynamic language for the second (mono, and Microsoft Roslyn being perfect examples)

        Originally posted by caligula View Post
        TDD is the solution to problems, not limited static type checking. The green lights in test report are more useful than cryptic compiler errors or warning (why do they even need to show warnings).
        Not really, while TDD helps gloss over some of the issues of dynamic languages, static type checking helps to ensure deterministic behavior. Further using a compiler validates that the code you've written is well formed and thus standards compliant even if the code itself is broken which means that you have an assurance you're not relying upon undefined behavior (assuming you're not using compiler extensions) which helps cut down on the number of bugs you have to deal with as a direct result.

        In short TDD ensures you get the correct output for a certain input
        Static Type Checking ensures determinism
        Compiliation ensures that the code itself is well formed.
        Static Analysis can help with everything from style guidelines to pointing out errors in the IDE
        Intellisense lessens error prone manual typing
        Originally posted by caligula View Post
        Dynamic typing is less verbose and less typing means less bugs in code.
        That's disingenuous for two reasons:
        1).With strong static typing a language can be tooled, this means that I can use this really cool feature known as Intellisense. What I can do with this is type in just a few letters and it'll give me suggestions while providing documentation inline, as a result beyond the initial declarations of variable, class, and function names you're not typing much more than a few characters, and as a result you are inputing a significantly smaller number of characters by hand than you would using a dynamic language.

        2). The important static languages have this feature called type inferencing, and it works just the same way as a dynamic language except for it being a statically typed variable. which means that in the best case the dynamic languages are only saving 3 characters vs static languages for what is actually typed (very few people are going to write the boiler plate stuff by hand, most of them are going to have their IDE autogenerate it for them).

        Comment


        • #44
          Originally posted by Pajn View Post
          No Android doesn't have it, nor does iOS, Ubuntu Touch, jolla or anyone else.
          However everyone got a browser.
          No I don't want completely different UIs, I want one UI that scales to whatever screensize
          it requires, that support both mouse, keyboard and touch. Doing that using modern
          web technology isn't hard and doesn't require much time if done properly from start.
          The problem is that doesn't really work, you can't just scale things to a screen size without making serious compromises one way or the other. It really has to be tailored to the input type as well. While large buttons for instance are nice for fingers I don't want them to be that big when I'm using a mouse and keyboard. You probably would also want it to look integrated with the appropriate device as opposed to looking the exact same everywhere, but then again you might not *shrugs* I know a lot of people do though

          Further I do know mono will work across all of the devices you've listed :P

          Originally posted by Pajn View Post
          That is why Google have developed Dart.
          Whatever you think of Javascript (I don't like it) the web is the only truly portable
          platform and developing for it in sane languages (Dart) is a real possibility.
          Yeah dart actually is pretty interesting I'll give you that and certainly a massive step up from javascript (not that it's a very high bar) I don't agree with it not going full in on the static typing but it's a step in the right direction and I'm hoping will go fully static in the future.

          However I do not agree that the web is the only portable platform. That said portability to me (and most developers) means source portability, binary portability is simply a distribution detail which isn't that big of a concern

          Comment


          • #45
            Originally posted by caligula View Post
            Javascript also comes with a fixed equality operator. Problem solved. Just like PHP has one.
            yeah "===" because they couldn't figure out how to do equality right the first time. And PHP is certainly not a language to look up to either.

            Originally posted by caligula View Post
            Fact is, JS is NOT interpreted anymore, it's a JIT compiled modern language.
            I never said performance was the problem so meh.

            Originally posted by caligula View Post
            Another fact is, I can't just install Python or Java on my iPad, Android phone, Chrome OS, Enterprise Windows at school or work.
            If it's school or business equipment do you really believe that you should be installing arbitrary software on there in the first place? That's the IT department's job not yours.

            Originally posted by caligula View Post
            Why? The reason is not technical, it's political. The whole Mozilla is now run by JS inventor. Of course we will shove JS down our throats no matter what you think. They have been actively enforcing JS for ages. You've seen PDF.js in Firefox? I'll tell you. It's purely crap. It's slow and buggy, but they're enforcing it. You can't choose.
            And that's part of why I want to use Rekonq, or other webkit browser (I get all my nice KParts) but unfortunately I can't, and none of the mainstream browsers but firefox have tabs that really scale appropriately.

            Originally posted by caligula View Post
            Some Linux systems have switched to dash so Bash is not a standard. I also don't know what shell my Android devices or iPad has. I doubt Bash.
            The point was that everything being written in javascript is as absurd as everything being written in shell, not as a suggestion to write everything in shellscripts.

            Originally posted by caligula View Post
            Anyways, think of the modern platforms: tablets, phones, smart TV, desktop, server, set top boxes, etc. They ALL are migrating towards a browser based interface.
            Actually I don't see that at all, in fact on the tablet and phone side it's well noted that they're moving away from the browser and into platform specific applications. Facebook and youtube being easy examples, and with both Mono and Qt being cross platform to all significant platforms I'm not convinced that the future market share won't be mostly shared by those two.

            Originally posted by caligula View Post
            Browser is the de facto standard today. It's a terrible platform in many ways, but everybody seems to like it and that's where the money is.
            It's not really the defacto standard at all. C, C++, JVM, and .NET are still the basis for most applications today, and I don't see that changing any time soon. This Cloud nonsense has been going on for years now and the market has yet to really shift.

            Originally posted by caligula View Post
            JS now has SSE and AVX and GPU acceleration.
            yes because we're at the point now where people are insane enough to think that that's just what Javascript needed

            Originally posted by caligula View Post
            People are forced to use Firefox, Chrome, IE, Opera. All other browsers will be ridiculed and forgotten. Only hardcore nerds will use them and miss the old Web 1.0. Mainstream users want something that works.
            unfortunately yes, which is a sad thing not a good thing.

            Originally posted by caligula View Post
            JS is the cool new intermediate language. It's probably worse than academic bytecode formats, but technical merits don't matter. JS will be replaced with something better in the future but now a great political force is pushing JS as intermediate format and there's nothing you can do about it.
            Actually there are two things I can do about it:
            1). Do what I'm doing already and not write my applications completely in Javascript
            2). Help promote other people doing the same.

            Originally posted by caligula View Post
            Last time I checked, shumway was better than gnash. The developers and people who spread media hype also like the more liberal licenses and want to differentiate from toenail eating FSF guys.

            well I'm going to stick to using the adobe plugin regardless

            Comment


            • #46
              Originally posted by Luke_Wolf View Post
              Well obviously you need the LLVM runtime in order to do the JITing, and assuming that you have installed LLVM on those devices and you bundled all of the libraries you required into it (and that the libraries support all of these platforms) then yes in theory it will. However last I checked Android doesn't have LLVM as part of it's image and the PS4 may or may not.

              That all said trying to run the same unmodified program across all of those platforms plus a desktop is stupid. You are going to at a minimum want different binaries with completely different UIs using paradigms appropriate for the platform coded into them which JS is not going to help with.
              Well said.

              Comment


              • #47
                Let me get this straight:

                ``All future software will be written in Javascript... With Javascript you just need a browser...etc.,''

                With a Browser you have a C/C++ platform. So what myopic mind thinks an interpreted language, no matter how much you add to it, including non-interpreted capabilities thinks Operating System Vendors are turning their entire proven platforms over to a Browser? Too many I'm afraid.

                Sorry, but C/C++ are expanding use, never mind ObjC exploding in use as tools of the trade.

                There is no goddamn way I'm writing a Web App on iOS, or OS X, not to mention Windows or FreeBSD. GNOME training people on Javascript as some sort of gateway language drug is impotent.

                In the end, C/C++/ObjC and Java [until Enterprises dump it for something else like they did to C++ in the early 00s]. FORTRAN/Matlab and others for specialized engineering/scientific work.

                Python, PHP, Ruby, Lua, Perl will all be around. LISP, Prolog, whatever else will still have their niches.

                Javascript will continue to be less and less prominent as more and more of its UI functionality is built-into CSS.

                Once security issued are worked out in a sandbox, both WebCL and WebGL will eventually be containers for straight OpenCL and OpenGL enabled systems.

                Comment


                • #48
                  Originally posted by Luke_Wolf View Post
                  The problem is that doesn't really work, you can't just scale things to a screen size without making serious compromises one way or the other. It really has to be tailored to the input type as well. While large buttons for instance are nice for fingers I don't want them to be that big when I'm using a mouse and keyboard.
                  And tailoring for different input types is easy as well. Right now there isn't a ready
                  API for asking for touch support but I can check for a platform that will probably
                  support touch (includes phone, mobile, tablet or touch in the User Agent) or platforms
                  that are nearly always touch (Android).
                  And no, I don't have to make any compromises at all.

                  Originally posted by Luke_Wolf View Post
                  You probably would also want it to look integrated with the appropriate device as opposed to looking the exact same everywhere, but then again you might not *shrugs* I know a lot of people do though
                  People seems very happy with Spotify even if it doesn't look native. Or look at Android
                  where overly other app looks completely different.
                  And I I do want it too look native everywhere, I can do that. I will just have to write
                  platform specific code for every OS, just as I would have otherwise any way. And I can
                  still keep all background code the same. Mostly it is CSS that would be changed.

                  Originally posted by Luke_Wolf View Post
                  Further I do know mono will work across all of the devices you've listed :P
                  I guess you mean Xamarin which does NOT run on Jolla and Ubuntu Touch for instance.
                  Also it requires writing platform specific code so it isn't even write once compile everywhere.

                  Originally posted by Luke_Wolf View Post
                  Yeah dart actually is pretty interesting I'll give you that and certainly a massive step up from javascript (not that it's a very high bar) I don't agree with it not going full in on the static typing but it's a step in the right direction and I'm hoping will go fully static in the future.
                  What do you mean with "not going full in on the static typing"? If you want to statically
                  type everything, then do. It just gives you the possibility to dynamically type it if you
                  want (which you can do in languages like C# and Java too, just pass it as object).

                  Originally posted by Luke_Wolf View Post
                  However I do not agree that the web is the only portable platform. That said portability to me (and most developers) means source portability, binary portability is simply a distribution detail which isn't that big of a concern
                  First, that is much more work.
                  Second, what happens to a user that want to run it on a platform for which you
                  haven't built it? It doesn't matter if your code could support it or not, it wont help
                  the user.

                  And what about platforms that you can't compile to even if you want, like game
                  consoles and smart TVs?

                  Comment


                  • #49
                    Originally posted by Pajn View Post
                    People seems very happy with Spotify even if it doesn't look native. Or look at Android
                    where overly other app looks completely different.
                    And I I do want it too look native everywhere, I can do that. I will just have to write
                    platform specific code for every OS, just as I would have otherwise any way. And I can
                    still keep all background code the same. Mostly it is CSS that would be changed.
                    Spotify is a Web 2.0 app nowadays, https://play.spotify.com/
                    People can make it look whatever they want. The power of Web 2.0 / HTML5 / JS.

                    Comment


                    • #50
                      Originally posted by caligula View Post
                      Fact is, JS is NOT interpreted anymore, it's a JIT compiled modern language. Another fact is, I can't just install Python or Java on my iPad, Android phone, Chrome OS, Enterprise Windows at school or work. Why? The reason is not technical, it's political. The whole Mozilla is now run by JS inventor. Of course we will shove JS down our throats no matter what you think. They have been actively enforcing JS for ages. You've seen PDF.js in Firefox? I'll tell you. It's purely crap. It's slow and buggy, but they're enforcing it. You can't choose.
                      Actually, you can choose what PDF reader you want to use in Firefox.

                      Comment

                      Working...
                      X