Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Tuesday, November 20, 2018

The Java Propaganda Language

I recently posted the following reply to an article about how management failed when they made incompetent choices about an implementation technology simply because they wanted to use the popular tools instead of the right ones.

Back in the year 2000...
I worked for LingoMotors, a fantastic startup some years ago which had built an amazing AI system that would parse the English language. The whole thing was built using VisualWorks Smalltalk. We had more than a dozen doctorate level computational linguists, several of them famous in their community. The system was amazing, and it leveraged the strengths of Smalltalk in a great way. This was a way to tag information with real metadata about the meaning of the data, and our first customer was a large online bookseller.
When we needed another round of financing we kept on getting pressure from potential investors who agreed we had something great, but they wanted us to port the whole thing to Java before they would back us. They had no clue that doing this would have killed our competitive edge, and it was hard to secure more funding.
The choice of implementation technology had become an issue of political correctness, in a sense. A lot of really wonderful programming language products died when the Java juggernaut trampled the world with overhyped promises. Now it seems that Java is over the top of its S curve, and things are more relaxed. It could happen again.

Saturday, October 6, 2018

Raise Your Computer Literacy to Mastery

There are different levels of computer literacy.
  1. Beginner - You know how to turn on a computer, open a web browser, use email and a word processor, etc. and maybe how to copy files around.  If you have been using a computer for many years and this is what you know, you are still a beginner.
  2. Power User - In addition to what the Beginner knows you also know how to tweak operating system settings and how to type some commands in a terminal or command window.
  3. Master - You know all the above and you also understand programming concepts.  Without this knowledge you are really at the mercy of the computer and software providers.
I like to compare this to understanding something about cars and how they work.  People who drive cars without automotive literacy face big challenges when buying a car (especially a used car), when the car breaks down on the road, and when bringing the car to the mechanic for repair.  Understanding cars improves driving skills, personal safety, and saves you time and money.
When schools first started teaching young people about computers they had a high concept of literacy and they tried to teach programming using languages like Logo, and Pilot and BASIC and sometimes Pascal.  Over time this eroded and computer class became more about just teaching the Beginner skill set described above.
Adults now are wowed by how much young people know about computers, but this is usually just a knowledge of computer trivia and of surface details, and not a deep understanding of computers at all.  We must be careful not to be hoodwinked by the semblance of mastery.
Real mastery is achieved only if you understand programming and have learned to make the machine do what you want.  Otherwise your computer will only do what other people have programmed it to do, and is that really what a so called personal computer is supposed to be?  I am including phones and tablets when I use the word computer, because clearly these things are computers.
A non-obvious benefit of mastery of computer literacy is the personal growth that happens when you learn to program because of the way it sharpens the mind.  Programming teaches analytical thinking and problem solving skills, and it can also be great fun.
I hope that this article encourages you the reader to raise your level of computer literacy!