Showing posts with label web.development. Show all posts
Showing posts with label web.development. Show all posts

9/3/08

Riding the camel - OCaml opinion (i)

I have started just a few weeks ago using OCaml. My only serious experience with a functional programming language was with Erlang, but I really liked it. I liked the shift of paradigm (although I am such an OO progammer (learned to program with Ruby), it was not difficult at all). Here are some of my thoughts about it.

Being a strong typed language for being functional at first sight seems cool. You can have all the benefits of typedness without actually the blot of the extra typing. Actually, it is, but it has its cons.

I really have nothing to complain (yet) about OCaml except for it's output libraries. I really miss my [puts | print | Console.Print | even the fugly System.out.println]. Debugging is a pain not as easy as another languages, just because of the printing. Not debugging itself, but unit testing, as part of test driven development (TDD), something relatively new to my and which I'm falling in love with.

I don't know whose fault it is, if the language itself for not being flexible with the types (at least the very basic ones) or the libraries. I know about some external libraries (MetaOCAML, Sexp, extlib) that try to handle this, but having to rely on external libraries leaves much to desire of the language.

The other thing I find annoying is that the compiler just points the first error it encounters. It's trivial for small files, but I'm scared of what can happen with larger files. Fortunately, TDD helps you not to commit those mistakes, at least not catastrophically.

Maybe the OO part of OCaml has it's advantages, and I want to think it has because pure functional programming in OCaml is not the way one would like, at least not me. But I have not explored that yet. My next goal: functors.

CC by shamiska

Well, all of this is because we are developing a Web framework on school, which had to be done in a functional language. It seemed like the perfect opportunity to learn another language, so I decided to give it a shot. I don't post the link of the project (although it's GPL3), because I don't know if I am able to do it given it is a school project, but once I can I would share the result with you.

7/6/08

Javascript, AJAX and beyond.

Recently when I was discussing with a friend about my tag clouds, and he commented something along the lines of: "such a nice AJAX application". That triggered my necessity to post on that.

"Is not AJAX. Is just plain Javascript". He said: "but Prototype is an AJAX library".

This hype around AJAX is cool. Lots of nice web applications, improved usability, better user interfaces, etc. But, as with everything, people sometimes misunderstand the concepts and, for the fatal blow, use them wrong.

AJAX is more than an acronym

Ajax (and not AJAX) is not Asynchronous Javascript XML anymore. Why? Because you can make requests synchronously if you want. Because not only Javascript, but Java, ActionScript, VBscript, whatever that runs on the client side and know how to do it can make requests. And XML, heck, it isn't even human readable. Plain text, javascript, html and JSON, among others, are possible results.

Is hard to define what AJAX is. Our friend Wikipedia defines AJAX as a group of interrelated web development techniques used for creating interactive web applications. Certainly the definition comes short, and one can interpret it as most convenient.

AJAX is not javascript

My tag clouds are not AJAX. Most of javascript effects, widgets and toolkits are not AJAX, at least not depend fully on it. People tend to think drag & drop, modal windows, fading elements or loading bars are AJAX. They alone are not. But most of them use AJAX techniques to communicate in some manner to a server, so the line is blurry.

What has changed since the coming of AJAX as such is the way people use those chunks of javascripts. In my opinion, I think it's mainly because designers are not the only ones to develop web applications anymore. Now, in order to successfully develop a web site (of any kind), a minimum of programming background is required. Or good tools. Or even better: good employees.

AJAX is not forever

Wow, that one is hard. AJAX has many weak points that prevent web applications to achieve their fully potential. Web 2.0 starts sounding too old. RIAs are growing, and there are several applications out there to prove it. I don't think that web application will replace desktop applications, not fully. But I think offline web applications will eat a big piece of the cake. Sooner or later, but being able to have an application inside another one, whose main job is communicating, is something still being worked. AJAX, as other technologies, will rather evolve or die.

I am aware we belong to a rapid-evolving era not only for web application but for technology in general. AJAX is not the exception, and we as developers have to catch up quickly, have a clear understanding of the panorama and use tools accordingly.

6/23/08

Google Developer's Day Mexico 2008

Today I attended at Google Developer's Day Mexico 08. To my understanding, it is the first time such event is done here in Mexico, and Google people did a nice work.

The first couple of hours John Farrell (Google Mexico's director) and Alfonso Luna (Marketing director for Latin America) besides giving us an overview of the event they clearly stated the intentions not only for the workshop, but for the Google developers in general.

It is well known that times are changing and the Internet is positioning as one of the most ubiquitous, important mass medium, yet the communication, use and business paradigm is totally different to 'traditional' media such as radio or TV. Internet, unlike the others, is a dynamic medium, in which the most important thing is not the hardware or the infrastructure per se, but the content. Concepts like shared market and 'the long tail' are playing an important role in their business paradigm.

John described us Google as an ecosystem, in which sponsors, partners, content providers, developers and users interact in complex manners. Google's mission may be ambitious, but the truth is that its worldwide presence is something we should be aware of. And we, as developers, are part of this game. So Google has been developing a set of Open Source tools and engines to help developers, in such way we can develop quick, good and cheap. Is a win-win deal.

The rest of the day we were offered a set of conferences and workshop specific to the Google technologies, split by interests (it would be impossible to cover all of them in just one day). The complete agenda can be checked here (I couldn't find an English translation, bear me). Google gears, Google Web Toolkit, OpenSocial, Android, Google App Engine and KML were just some of the topics covered on the workshops, I will be posting about them and my experiences on later posts.

It was an overall nice event, I hope Google to put its eyes on Mexico since I am sure there are lots of good developers that can be a force to be reckoned with.