Sunday, February 21, 2010

Everything becomes LISP

I came across a couple of blog posts about various languages recently, and the common thread seemed to be features that originated in LISP. Lamba expression, new(ish) in C# would be one of those things. Now LISP has never really taken off. Franz Lisp's Allegro Common Lisp has done solid business down through the years, but I dont think anybody ever got a Lamborghini or an IPO out of LISP (maybe in the days of the LISPmachines, but who knows).
It seems to remain in the Influential category. I like to think of the ML language family as being LISP derived DSLs which just happened to mature into general purpose programming languages. Apple's Dylan started out as a Scheme dialect, and Python is very definitely a re-syntaxed homage to Lisp, and Prolog's lists are very definitely a slightly embarrassed rip-off of Lisps, er, lists.
Now not being a proper computer scientist I never actually studied Lisp in any detail but all the proper computer students always seemed to be blown away by it. It is remarkable that it originated back around the same time as Cobol and Fortran and yet it stays completely futuristic, the language whose time is yet to come -- Lisp.net anyone?

Friday, January 29, 2010

software components industry part 6

the notes continue -- Ruby on Rails -- the main selling point, unconciously for most users, seems to be the code generation and OR mapping aspects of ROR which for Rails purists is probably a little beside the point but my contention is that without this simplification they would spend a lot of time on boiler-plate database access code and would have less time to concentrate on what they would consider more core and business oriented programming aspects

The System.Configuration Namespace Gotcha : also known as Arrrgh !!*&/@x|*%*

From .Net Framework 2 onwards, you have to expliticy include a reference to Configuration namespace -- this is progress?
Otherwise you will get all sorts of strange errors -- having learned .Net programming with Framework 1.0
I keep getting caught by this ... It seems so ... VB6 (and not in a good way :-)
from menu
Project --> Add Reference
stay on .Net tab
scroll down to System.Configuration and select it (they are in alphabetical order thank goodness
click ok and the strange errors and most of the bad feeling will go away

Wednesday, January 27, 2010

10 million high tech jobs in Jeopardy?

I hear there may be as many as 10 million high tech jobs in Jeopardy due to Chinese and Indian Competition.
My question is, and I know its been over thirty years since I did geography in primary school
and I haven't kept up and a lot of countries have changed their name, some more than once in
the meantime, but its still embarrassing to have to admit I hadn't heard of this Jeopardy place, and especially if they have 10 million high tech jobs going a begging on account of some sweetheart deal with the Asian powers -- must be a heck of a big country besides which their international diplomacy is top notch to do a deal that size with both India and China? I want to know why the European Union didnt get in there first and offer them double -- in free trade all is fair ... perhaps the Jeopardian government would have retaliated with some kind of trade sanctions but for that many jobs it would be worth annoying them, they may be amazingly technically sophisticated but if they were actually rich I'm sure we would have heard of them ... there was something about a NASA project in Jeopardy a couple of years ago but I thought CNN were mixing it up with Kazakhstan, who do moon shots for the Russians and get upset at comic movies

large and small (software components industry part 6)

Programming in the small and programming in the large -- CMS's and Business Orchestration frameworks such as Biztalk would be on the large end and programming the Crystal Reports API would be on the small end. You need both but you would hope to need the API level as little as possible!

Virtual companies (software components industry part 5)

Somebody said software was more like the movies than manufacturing -- and that the virtual companies that make movies would be a better parallel to what happens in programming. I must try to find the link

Sunday, January 24, 2010

software components industry - part 4

this is turning into a set of post-it notes, but never mind even if I'm the only reader it has some purpose :-)
Larger and or multiple monitors and better chairs, might increase your productivity by 10%? Seems like a waste -- high-level languages brought an increase in productivity of 5 times over assembly language (cant imagine what the jump from hexadecimal to assembly was, or from flicking switches and re-wiring patch panels -- I've met two people who were still doing wiring (known as 'knitting' in the nineteen seventies. Jeez.) and as languages without explicit use of pointers and garbage collection have probably brought another immense jump again (I know at least one C++ genius who would roll up his sleeves and used VB6 when he was in a hurry, and lots of C++ heads are unashamed in their adoption of either Java or C# when performance isnt the only goal)
But this is all a bit beside the point -- many of us miss the wood for the trees (self not excepted) -- techniques to increase our productivity by 10 or 50 or more times over current flat levels are required. Programmers are just too expensive. It is all very well spending 30 dollars a day on some guy in India or Eastern Europe when your business is entirely in the US where the equivalent programmer might cost your 200 a day, but you still arent getting a lot of bang for your buck if he is still producing 10 to 200 lines of code a day of plain boiler plate code -- you want a programmer regularly and predictibly producing the equivalent of thousands of lines of code a day. This is the challenge

Saturday, January 23, 2010

On Script zealots

Where did the religious war-fare in programming of script languages come from? It used to be an 'and' not an 'either/or' -- the fanatics should read something like "Programming Pearls" where Bentley is perfectly happy to write in Bash shell, Awk, Sed or Perl if it can get the job done and is perfectly humble about using a profiles and reaching for the C compiler if the interpreted language is too slow to get the job done

software components industry - part 3

Also, the likes of iPhone application acceptance and the Windows verification programmes(?) taken to an industry-wide level
In the small -- programming language free patterns, templates and code generators, to a certain extent, the likes of programs like Codesmith already do some of this. It should be possible to formalize this -- there are only so many computer programmers out there, and rather than farming out the grunt work to the guys who are lucky enough to live in India and Ukraine it might be better if everybody was working at a higher level of productivity

software components industry - part 2

I think it needs to be approached from both small and large levels.
1. Trust. Brad Cox is very good on this -- you need an infrastructure for trust-worthy computing, both in the large and in the small,
so things like
a. Code Escrow -- for both commercial and open-source code
b. code testing and verification
imagine the digital certificate agencies, and the likes of the Nevada Gaming Commission (their expertise was mentioned once in connection with trusted electronic voting) and the Defence/Military software agenies of different countries across the world setting up a testing and certification infrastructure for software components and ultimately (and much move complexly) entire software systems

Tuesday, January 19, 2010

software components industry - part 1

Gottfried Leibniz wrote "It is unworthy of excellent men to lose hours like slaves in the labour of calculation which could safely be regulated to anyone else if machines were used."
He was speaking of the lack of adding machines -- we have come on a bit, but the same sort of thinking needs to be applied to take programming to the next level.
Practically nobody writes their own GUI anymore, even as an exercise, and yet practically everyone still writes their own Database access code despite the existence of tried and tested code generators and Object relational mapping systems

Crying in the wilderness

I just stumbled across Brad Cox's blog.
http://bradjcox.blogspot.com/2007_08_01_archive.html
I read part of his book, ahem, 20 years ago, and its kind of discouraging that most of what he was trying to achieve is no further along -- there are some software component libraries and Objective C got embraced by Next and then Apple, but thats not much of an improvement balanced against the way software has become so complicated in the meantime

Friday, January 8, 2010

The last Version of Windows

I ever intend to buy ... is probably win 2008 server R2 -- I havent got around to it yet, but it is definitely a lot higher up my list than Windows 7 will ever be. I got a free copy of Vista Ultimate at a launch (win2008 launch ironically) and but for that I think I would have either downgraded to XP or like a lot of programmers I know, just given up and went for Ubuntu. Why would any developer want a brain-damaged version of an OS? By the time you have upgraded to the Ulitmate edition you might as well have bought a proper operating system...