What ever happened to Easy when programming ?

Interesting day, watching Googles I/O 2011 sessions online. Amazing that one can watch a developers convention at home via the internet,

The discussions were all about Chrome, Chrome Books (Googles version of the next best laptop PC) and HTML 5.

They seem awfully excited about the concept of subcribing to get a Chrome book ($28 a month) laptop as if it were the panacea for future computer users. When you do the math (12 months times $28) it will cost $336 per year. This appears to not include the internet connection (WiFi or 3G) costs. They give you a free 100 meg per month service, but that is nothing compared to what one really needs (I can download a 100 meg in one day), so you still have to pay the high cost for internet service. I can buy a Windows 7 netbook at Walmart for $248, so whats the draw for Chrome books ?

Now where it got really interesting was when they started discussing coding stuff using HTML 5 (for Chrome) to do stuff. I have to admit that I am not a C programmer and I am not crazy about OOP either (so not programming using any OOP), but still, as an experienced Windows API programmer, I do think I have some knowledge about programming. The code they were showing didn’t make a lot of sense to me (I know some HTML, but haven’t worked with HTML 5 yet), at least not a first glance. I didn’t see anything that was “easy” to do.

I have to admit that the programming world confuses me a great deal. Microsoft with all their XAML coding stuff and now HTML 5. Sure they are likely very powerful, I don’t doubt that. But where are the “easier” ways to program today ? Code in my opinion should be easy to read (meaning just reading it one should be able to immediately understand what it is doing), with minimal lines of code to handle a task. Code should read like a spoken language rather than a math problem. This is one reason I have always stuck to BASIC as a programming language. I like to be able to read my code, almost like I read a book. When a programming languages code has more dots, brackets and curly brackets than it does english characters (letters, numbers and common characters like + – etc.) it no longer reads like a book.

For example, let’s look at simple routine using EZGUI (and PowerBasic) code:

SUB FORM1_OPENBITMAP_Select(BYVAL F$)
    LOCAL P$, CW&, CH&, W&, H&, AW!, AH!
    IF F$="" THEN
         EZ_Color -1,-1
         F$=EZ_OpenFile("Form1","Select Bitmap :", "", "Bitmaps (*.bmp))|*.bmp|", "S")
    END IF
    IF F$<>"" THEN
        P$=EZ_LoadPicture(F$)
        EZ_GetPictureSize P$,  W&,   H&
        AW!=EZ_ScaleToCharSize(W&, "PX")
        AH!=EZ_ScaleToCharSize(H&, "PY")
        EZ_ResizeC "Form1", 100, (80-AW!),0, AW!, AH!
        EZ_GetCanvasSize "Form1", 100, CW&, CH&
        EZ_StartDraw "Form1", 100, CW&, CH&, ""
            EZ_CDrawPicture  0,0,  W&, H&, P$, ""
            EZ_CCopyBuffer 1,2,0
        EZ_EndDraw
        EZ_FreeImage P$
    END IF
END SUB

This subroutine displays the Windows Open File Dialog, so the user can select a bitmap file, then loads the Bitmap into memory, resizes a Canvas control to the same size as the bitmap, draws the bitmap on the Canvas, makes a copy of the image in the Canvas’s 2nd buffer (for a backup) and then frees the original Bitmap that was loaded. All this in 20 lines of code. Notice the EZGUI commands used. Even someone who knows nothing about programming could guess what the code is doing. With command names like EZ_LoadPicture, EZ_GetCanvasSize, EZ_StartDraw, EZ_CDrawPicture it doesn’t take a rocket scientist to figure out what the code is doing.

I also don’t like the way programmers gravitate to all sorts of fancy computer jargon. True, some technical stuff may require special jargon, but I think that software developers have gone too far. Some CS (computer science) lectures I watch on the web lose me in a few minutes, because of all the technical jargon they use.

Lastly, I still am not sure about depending upon the “Cloud” for all my software needs, especially the idea of storing all my data on the cloud. Look at what happened to Sony recently with the PSP hack. While the cloud may have some benefits, total dependency upon it may simply be asking for trouble. Also, my experience on the web (using online applications) compared to using apps native to my PC is still quite poor. The speed alone is enough for me not to want to use a web application. Well written native apps for Windows will out run any web app, any day of the week.

So where is the effort to make writing software easier ?