Is Java Development For Kids?



I interviewed Colling Doering, a 15-year old student from Canada who keeps his own Java blog and his favorite activity is study of Java APIs. Check out the interview, I think it's fun and for me it's a bit surprising how early start people these days with Java.

The blogosphere was recently full of posts about the complexity of Java and how hard it is for new people to start with Java - well don't forget that kids became better "engineers" as well. Did you also notice how young children can do all kinds of fancy stuff with a mobile phone while I am having a hard time to teach my grandmother to operate one (nothing advanced - just making a phone call - and she still doesn't get it!). The times they are changing...

When I was 15 I was learning procedural programming with Pascal and a bit of Assembly (both on Commodore 64 and PC). Nowadays, students can skip lots of history and go faster to object oriented programming. It seems to me that there will be more developers with skills for writing programs in higher level languages, ignoring the low level ones. I wonder if that means that they will be worse programmers - some people think you need to go to the lowest level to completely get it (no matter what abstraction you use, every program is still at the end a sequence of commands with gotos). At any case computers are available now for almost everyone - you don't want to know how hard it was to get a computer for a normal family in the communistic Czechoslovakia around year 1985 - and young people can start to write software really early. I wonder if there is any younger member of the NetBeans community - if yes, please let me know.

Btw, Collin is writing his own NetBeans module now... it's a good test of usability and documentation of NetBeans APIs :)
Comments:

Hi Romuen, I've been reading your blog for quite a while now. In my opinion Java is a easy language with great potential (guess I'm a java fan ;)), but in order to understand programing you simply have to learn low level programing. There are lot's of aglorytmic contests, java isn't good for such competitions, quick low level codes are needed there, and a programmer who understands this low level. PS: Keep up the good work with netBeans, I love it! :) PS2: I'm 17 and I'm coding in C/C++ and Java. ;)

Posted by Ktoso the Ryba on květen 04, 2006 at 07:08 dop. CEST #

Hello Romuen! I started programming in Java when I was in Grade 5 after getting tired of QBasic on a 486. Initialy I found it challenging, but after I learned the basics I really enjoyed it! During the grades of 6 and 7 I took two university courses through Athabasca University on IT and Java, COMP200 and COMP268. I didn't really find Java hard to learn at all. C++, on the other hand is hard to learn! I don't think I would have had such an easy time with C/C++ if I hadn't already known Java before I tackled it! Right now I'm 15 (Aug 28, 1990), and can program in Java, C/C++, Basic, HTML, and a little bit of delphi! Oh, and I'm a Linux geek and a huge Netbeans fan as well! Duh! :-)

Posted by Neil Thiessen on květen 04, 2006 at 04:13 odp. CEST #

Hi guys... thanks for letting me know... nice to see we have more young developers in our community! :)

Posted by Roumen on květen 04, 2006 at 04:28 odp. CEST #

It truely depends on the type of software development you are doing. If someone is doing kernel or driver development, understanding low-level complexity is a given. However, if one is doing web development, it is not needed. In fact, it shouldn't be. Most automobile drivers out there do not understand how a combustion engine works. Is it needed to drive a car? Of course not.

Posted by Abraham Tehrani on květen 04, 2006 at 08:21 odp. CEST #

When you are learning programming, nothing beats C. Java has a fantastic set of classes, which speed up development, but when you want to do something yourself from scratch, you gotto try that out in C. C++ is hard. Java is a breeze as compared to C++!

Posted by Rohan Ranade on květen 04, 2006 at 08:45 odp. CEST #

~5 : QW-BASIC
~10: BASIC, VB
~15: x86 Assembly, C/C++, Perl, Java
~20: C#, .NET languages, Java5, Carbon, Cocoa etc.

I only started appreciating the beauty of Java when Tiger was released really, which is the language I use most of the time these days (unless there isn't a choice, that is!)

With UML and tools like BlueJ, I reckon kids will learn and grasp the concepts of Java much easier than I used to learn any programming languages, for sure ;-)

Posted by Alex Lam on květen 04, 2006 at 09:54 odp. CEST #

I don't think starting with Java at 15 is so extraordinary nowadays, I got my first Java book in 2000, when I was, yes, 15 and Java 1.2 was still brand new. I have the impression that things have improved a lot since then, especially concerning learning materials and software and hardware of course (well, compiling stuff on a p120 with 16Mb of RAM sure was painful ;-) )

I have to agree though that only knowing Java greatly limits one's understanding of software development in general, knowing a lower level language like C++ is a good asset, as is knowing other development models (procedural/functional)

Posted by Bert Geens on květen 05, 2006 at 02:16 dop. CEST #

"I have to agree though that only knowing Java greatly limits one's understanding of software development in general..." I completely disagree with this statement. In general understanding software development, means you must understand the concepts. Most, if not all, of the concepts are language agnostic. As I stated before, it truely depends on the type of software you are developing.

Posted by Abraham Tehrani on květen 05, 2006 at 01:22 odp. CEST #

I'd agree - it's the ideas and types of project that you engaged in that really trains your brain.

Languages themselves doesn't really teach you much about how to write useful, maintainable, elegant etc. programs. I always believe in the possibility of someone coming up with a computational-intensive program that does 1+1, regardless of whichever language it chooses!

From my experience, the abilities of the rest of the group, languages' functionality / speciality and existing infrastructure that drives my decision on which language(s) to use.

BTW, when people say "low-level language is better" they should mention all kinds of assembly code rather than C / C++ ;-)

And to be honest, apart from providing me extra knowledge about the internals of a machine and more optimisation opportunities etc. I don't really see much value in terms of gaining new programming concepts than compare to say Java.

Posted by Alex Lam on květen 05, 2006 at 04:30 odp. CEST #

You guys (And most of the UNIX 'seniors', out there) are simply concluding that C is "low-level", and Java is not based on the compilers available to the both of them. To me, Java represents a form of which to write code in, and a set of its own standards on how code is to be written, used, and accessed! Not what the compiler makes out of it!! A programming language is just that!!! A LANGUAGE!!! A form for writing something that can be understood by something else, in this case the compiler!!! You guys seem to think that Java can never be used for "kernel development" and the like, mostly because it is compiled into bytecode that relys on a runtime environment!!! What you fail to see is that its all the compiler's fault!! The compiler is what produces the stupid bytecode! Its the compiler that controls how libraries are linked!!! Its even the compiler that makes the resulting binary slow and runtime environment dependent!! And its ultimately the compiler that prevents Java from generating binaries that would be suited for stuff like kernel development! For goodness sake people!!! Write a proper native compiler for Java and then try and say its not and can never be "low-level"!!!!!! Put the blame where it belongs!! At the feet of the compiler!!! Not at the feet of the language which merely says how to put code in a form that can be understood by the compiler!!! Re-write GCC so it understands Java instead and you'd be looking at the new C!!!! Linux (And any POSIX OS really) is practically my life!! But the one thing I hate about it is the ancient ones who were there when it was created who are so stuck in the past!! I'm talking about the people who think that ext2 is "the" FS. And C/C++ is "the" language!!! And especially you who think that X11 is the enemy, and real linux users do everything from a console!!! And not a frame-buffered one with a pretty picture either!!! The same people who spit at eyecandy, even if it's being run directly on the GPU which is largely unused under Linux and would actually increase performance!!!!!! Sure!! I agree that this stuff is mature!! But, there is, believe it or not, such a thing a something being stable and dependable even though it sometimes gets updates (Apt vs. Portage) and even though it hasn't existed for 20 years (Ext2 and C vs. well, everything)!!! For instance I've used XFS for over a year now and have never had any problems with it, and the extreme performance I get from it is gladly accepted!!! If someone did rewrite GCC and the linux kernel was rewritten in Java I think it would be far more readable and attract more younger developers!! And there would certainly not be any performance loss or gain for that matter (Compilers fault again)!!!! In the light of this new evidence I think it is clear that Java "can" be low-level!!! However, in reality, neither C nor Java are really "low-level"!!! That credit goes to assembly!!!!

Posted by Neil Thiessen on květen 06, 2006 at 11:54 odp. CEST #

Post a Comment:
Comments are closed for this entry.
About

Roman Strobl

Search

Archives
« červenec 2014
PoÚtStČtSoNe
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   
       
Today