Wednesday, December 3, 2014

Programming productivty

I've used dozens of computer languages (dozens just of different BASIC dialects... still fond of Bascom) since 1975, but was never more productive than VB6 which seemed to get a lot of things right, but one major thing wrong. It required a runtime module. I want to hand a static compile to a customer and know I'm not going to have any installation or configuration issues. They get an executable and it just works.

But it's not my favorite language. They all have flaws. VB has just enough object orientation. C++ has too much. C doesn't have any and too many ways to do the same thing. Pascal makes my skin crawl. I really like the old Euphoria but it's a pain to compile (you first must translate it to C.) Forth really isn't compiled but can be a single static file.

The Falcon C++ IDE looks interesting.

I own two basic compilers, PowerBASIC and PureBasic, but haven't gotten up to speed with either. Neither has a decent IDE. When my laptop arrives on Saturday I'm going to have to get serious about coding. No Linux this time.

The IDE is really important but I'm not up to writing one myself. I think about using NoteTab which has program-ability but that's just another language to deal with (although perhaps once and done.)

Klang is something I muse about (Ken's Language.) But I don't know. Like VB it would have 3 code file types (module, form & class.) 3 scope levels (public, private & local.) Automatic memory allocation/deallocation and sequences like Euphoria (not the usual garbage collection hiccups.)

Only two control structures, loop and if (a case structure.) Nothing more is required and just makes code ugly and less solid. I like simple, bullet proof code. Which means no jumping to labels. No labels period. No file includes. No header files. No macros or preprocessor. WYSIWYG. All routines are order independent (forward referencing is just fine.) Dot notation brings up a proper list of routines in the editor. External calls for other languages absolutely including C. Call by address for machine language and call backs. Only two routine types, Sub and Pub, both return a sequence (Euphoria) that can be ignored.

A database class works directly with all major types (SQLite is default and built in.) ODBC info can be read but bypassed for the actual connection. Methods would include .open, .close, .execute, .error, .next, .EOF, .text(index) and .release (.tran_begin, .tran_commit and .tran_fail as well, but I don't use them much.)

Numbers take as many bytes as required with type conversion functions for external calls (float80, float64, float32, int8, int16, etc.) No limit to decimal expansion. I'm getting tired and questioning this post, so I'm done.

No comments: