Dear web browser vendors…

… stop! I see you there upgrading a dead man (think ECMASscript.next) or even trying to replace it with some backwards compatible gibberish (think Google Dart). Let’s talk first…

So, yes, JavaScript is one hell-of-a pain-in-the-ass language, which is dynamically typed and then again not – think arrays and objects. It’s not OO, but yet you can do it – think anonymous functions and objects or functions within functions, ala funception :). The list might go on, and in overall it’s messy, not that easy to read and not that easy to maintain, not that easy to refactor and not at all easy to extend or build some modular systems, yet it’s specified by ECMAScript. Now JavaScript is not the only language conforming with the ECMAScript specifications, there is one more player on the field, it’s just running in it’s own VM for now and has it’s own community – ActionScript 3.0.

Why can’t you take this beautiful language, with full OOP support, events and anonymous functions and adapt it in to a web browser? I’m not saying you should implement the whole Flash framework as well, just the core classes and the syntax.

How it would conform with the web as we know it, you may ask. Well one of you has already implemented two different languages in one browser – Internet Explorer with VBScript and JScript. It would look like this for starters:

<script type="text/actionscript">
  package {
    import dom.*;
    class MyClass extends DOMDocument {
      public function MyClass(){
        super();
        addEventListener('onload', init);
      }
      private function init(e:DOMEvent):void {
        alert('we\'re done!');
      }
    }
  }
</script>

DOM events, dom classes, Xpath, everything you need to build a web. Built-in objects like: Date, Number, Array – they are already there in JavaScript. Take the syntax, add fully blown OOP, throw in some new classes like Mouse, MultiTouch, Browser (for example, for user agent information) etc. – do it as Macromedia did it when they created version 3 of ActionScript when the previous one was more like JavaScript. This is one of reasons why Flash will not die that soon – it has is it’s very well built language and frameworks (Flash and Flex).

How about performance – AS3 does it that well, because it’s compiled – the answer might lay in cache – do not cache plain source files, cache bytecode, cache compiled source – for faster execution.

And finally – for the love of god, do this thing together. Yes I know I’m trying to ask for the impossible in this corporate world, but then again – you did well with HTML5. 🙂

And again, if you have some pros or cons on this subject, let’s discuss it in comments section.

Sincerely yours,
Gusts

Math, oscillators and C (Updated)

So I’ve been working on my own VSTi for some time. It’s a hobby project, and I’m not thinking about releasing it to public (only as Freeware synth, as the VST SDK license does not allow me to publish the source). It’s one of those projects where you use your knowledge in programming with some hobby you have. My hobby is music, see here:

I’m also a software/web developer and my knowledge in languages are ranging from BASIC to C/C++ and from JavaScript to Java and of course PHP.

So this post is more like a question for an advice of fellow developers.

Continue reading Math, oscillators and C (Updated)

JavaScript objects My way

You’ve probably worked with some OOP language in the past. You probably know how the typical syntax of OOP looks in any language (well in the most popular ones at least) . It looks something like this:

class MyClass {
  // The constructor
  public function MyClass(){

  }
  // Some private method
  private function _someFunction(){

  }
}

Well JavaScript is one kind of a different beast.

Continue reading JavaScript objects My way

Smart Phones and left/right-handedness

I was playing around with my iPhone this one day and somehow I started to notice, that whenever I turn the screen to landscape mode I always turn it the same way I always do. Most of the games support landscape mode in both directions (just turn it around 180 degrees and the view will rotate around), until I opened this one game called Uber Racer, which immediately started upside down (according to position I was holding my phone). I tried to shake my phone, wondering if maybe the accelerometer was stuck or something, but then I realized that the game was programmed that way and I had to turn it around to play it. At that point I realized, how important it is to be able to turn the view in to current phone orientation, as it didn’t feel right for me.

So what am I talking about here, is that our so-to-be symmetrical devices are also affected by our left/right-handedness. I myself am a right-handed person, and I noticed that I always tend to use my left hand to hold the phone and my right hand to navigate on the touch screen (or press the home button). Also when I turn the phone, I always tend to turn it counterclockwise while holding the bottom of my phone with right hand and the top or back with my left. Is this just a coincidence or is it leading somewhere?

So here is a little poll I’d like to propose:

  1. Are you left/right handed?
  2. Which direction do you mostly turn your smart phone (tablet)?
  3. Does it annoy you if you have to turn it the opposite way than you usually prefer?