Tools
Home
My family
Hobbies
Religion
My Bookshelf
Programming
O'Caml
Tools
Links
CV
News

 

Support Open Source!

Favorite programming languages

Programs that compiles works! Wonderful debugger, you can even go backwards, like in some old Borland products. Fast executables.

  • Microsoft Visual Basic 6

The most productive environment around for creating bread-and-butter applications. Edit your program during debugging and rerun, this can only be done by VB and by Lisp.

Portable, runs on everything, very few differences between *nix and Windows. Fast! Faster than Java och uses less memory. SICStus costs money, and that is one of the reason it is so good, since it is constantly maintained. However, I have also used SWI-prolog which is very nice.

Favorite techniques

  • Constraints

I use clp(fd) of SICStus and Facile for O'Caml.

  • Logic programming

I programmed a lot of Prolog during the 80th, however today I prefer typed languages. Therefore, the typed logic programming language Mercury is very interesting. However, Mercury programs are not very compact, which is against one of my principles.

  • Genetic algorithms and genetic programming

Even if the computer are getting faster and faster, it doesn't help you tackling problems where the search-space increases exponentially. We don't have time to look for the perfect solution, an approximation is enough. A overview of these techniques can be found in Rardin's Heuristic Optimization Tutorial (IERC '95) (pdf).

  • WYSIWYG-programming

Why isn't programming like word processing? You change something, and immediately you the result. One example of what-you-see-is-what-you-get programming is spreadsheets like Microsoft Excel. Spreadsheets can be used for programmig; the spreadsheet can be embedded into a application, another approach is ExcelEverywhere, which compiles the spreadsheet to different programming languages.

Favorite application areas

  • Hard problems

I work daily creating sales configuration tools taht help ordinary user solve very difficult problems. Computers shouldn't just shuffle data, they solve difficult problems and make life easier.

  • Financial problems

Very challenging and easy to experiment with since there is so much data online.

  • How to make it easier to create administrative systems 

Today creating big administrative systems requires hundreds of programmers, both to get the requirements and also when implementing. There must be an easier way. As soon as the requirements are specified, the program should be finished.

  • Robots

I have several robots, Lego Mindstorm and a robot from Novasoft. However, the processors are a bit to slow. Next robot should be a real 32-bit robot, probably running Linux and O'Caml.

Operating systems

  • I replaced Windows 2000 with WinXP on my laptop and its okay.
  • I hate Windows 9x and ME

I have to reinstall the kids computers all the time. Next time they break, I will install WinXP.

  • I love Linux

Open source is the future, it is needed to get up to speed in program development. Currently to little is happening with software. We use the same programs as 5-10 years ago, a word-processor is still a word-processor.

Linus is one of the few programmers that made a difference. Thanks to him, cheap computers all over the world are possible. Both industrialized and developing countries can change and adapt to their local needs. I meet Linus once when he talk about is book just for fun. I asked him to sign the book.

Disappointing tools and techniques

  • Using Java to create client programs

So promising, good libraries, but it didn’t increase the productivity. It is still slower to create Java-program than using Visual Basic (which is a 10 years old technology)

Java is ok on the server side, with good JIT-compilers and vast amounts of ram, but it sucks on the clients side. Look at promising programs like Argo/UML, which is unusable on a PII-333 with 224 MB ram.

I hope this will change during the next years. And I want to have a language where casting isn’t needed! Maybe in the next release of the Java-language, I hope that ideas from languages like PolyJ will looked at.

  • Patterns

Very nice idea, but where are the applications? Very few patterns, few people talk about them. Patterns didn’t become the new way of communicating about programs.

  • UML/graphical program

Still slower to create programs using graphical techniques than using conventional tools.

  • We program today the same way we did 15 years ago

Difference: other languages and more libraries.

Still as hard, still the same amount of code written to solve a problem today as writing the same code in Fortran in the 50th.

Promising new stuff

At last a software development method that appeals to programmers.

  • Fast computers

If you use a good language (like O'Caml), the speed today is astonishing and totally new ways exist to solve problems, like genetic algorithm and constraints.

  • Research results from the 80th and 90th can be used commercially today.

Languages like SML/O'Caml, Erlang and Prolog now works, and in many case they are faster than modern tools like Java.

 Page accessed 3083 times.
Copyright 2001, Mattias Waldau. Last edited on Monday, August 19, 2002