A BEGINNING PROGRAMMER'S GUIDE TO JAVA
You can program in Java (or are learning to.) That's great!
But what else can you do with those skills? Are you trapped with Java?
Not at all. One of the reasons I chose Java as a language
for use in the classroom is that Java programming skills translate so well into
skills for other languages. Here are some other languages, and a brief look at
what your Java programming skills will give you in the way of a head start, and
what differences to look out for.
C# (C Sharp)
C# and Java are practically the same. C#'s roots are in
Java, as is the concept of its libraries relative to Java's API. The libraries
differ, but if you're used to Java's API you'll have no trouble getting right
into C#'s libraries to find the classes you're looking for.
The major development tools are very similar, or, in many
cases, you can use the same IDEs for C# as for Java. You can also do
cross-platform development in C# just as you can with Java thanks to tools like
Mono (which I highly recommend as a way of becoming familiar with C#) and the
forthcoming cross-platform Visual Studio tools from Microsoft.
C
Java is an object-oriented descendent from the C language. C
does not have object-orientation built in, but you should have no trouble
understanding much of the code. Imagine writing Java without creating your own
classes, or only creating limited classes. This isn't strictly accurate, since
it is possible to write object-oriented code in C, it just requires the
programmer to do much of the work that Java does in their code. Providing for
isolation of data, inheritance, etc. has to be performed through code written
explicitly to perform these functions.
Modern versions of C, such as ANSI C/ISO C (C99) provide a
version of C which makes it easier to write good code if you're coming from an
object-oriented background.
Another major hurdle will be dealing with memory management
directly (C has no garbage collection), and learning how to use the various
functions of C which are often not as predictable as the Java methods you are
familiar with.
The basics of C will already be familiar to you, but you
should conduct some formal study of C and use its standard libraries
extensively before seeking to start formal projects with it.
C++
C++ is another object-oriented outgrowth of C, like Java,
yet it uses a very different approach. You will find that your Java experience
can be very misleading with respect to the handling of data and the operation
of methods in C++. Also, C++'s libraries tend to be much more platform-specific
than those of Java. In Java you have platform-specific libraries, yet it is
possible to write good code that does not rely on it, or that relies on it
little enough to allow 90% or more of your code to be written in a
non-platform-specific fashion.
With C++, however, you'll find that while there are standard
cross-platform libraries, most code will be best written to the platform to
which it is being compiled.
Python
Python will be very easy to learn once you know Java. Its
syntax is quite different, and its approach to what is implicit and what must
be explicitly defined is very different to that of Java. Conceptually, however,
you will be right at home and will be able to learn the specifics of the
language very easily.
Like Java, Python has extensive libraries. Some are part of
Python's core distribution, but others are not. You will find that even in the
core libraries there is much less cross-platform support than Python seems to
promise. Also, you will need platform-specific libraries for any graphics or
audio code. Even in cross-platform libraries, you will find that there are
significant differences between platforms. If you are writing code that does
not rely on the platform for presentation, however, (for example code that uses
a browser), Python works very well in a cross-platform environment.
Javascript
Javascript is also very similar to Java in many ways, but
not as much as the name of the language might lead you to believe. Java has
recently acquired many of the constructs that have been favorites of Javascript
programmers for years.
You will find that handling data under Javascript is very
different to the means used in Java. You will also find the nomenclature very,
very different, despite the similarities in the languages. This will probably
be your biggest early hurdle in transitioning from one language to the other.
The best approach is to set yourself to learn the ways that
things are best done in Javascript, before trying to write Java code in
Javascript syntax. Once you can write solid small programs, enough will become
apparent to you that you can begin to take advantage of your programming
knowledge from Java to apply it to your Javascript programs. Some programming
languages it is your knowledge of Java syntax and structure that will make
those languages easy for you. Javascript isn't one of those languages. The
payoff comes after you have learned Javascript syntax and structure, the
process of designing well-build object oriented software will pay off.
With Javascript, the web browser is almost certain to be
your "platform." You will need to learn the Domain Object Model to
effectively apply Javascript. If you have already been using the DOM with your
Java code (over half of Java code is written for the web), then you are already
there. Otherwise, it's something else new you'll have to learn.
Objective-C
The transition from Java to Objective-C is far simpler than
to C++. The object-oriented techniques used in Objective-C will make immediate
sense to a Java programmer, as will the program structure. Objective-C requires
you to do your own memory management, unlike Java, but it provides facilities
to do so more simply and effectively than standard C.
The libraries will differ completely from those of Java, and
your platform will almost certainly be iOS or Macintosh, so those are the
platforms whose libraries you'll learn. Objective-C differs from Java more than
C#, but not so much as to make it extremely difficult to transition to. After
C#, Objective-C is probably the easiest non-scripting language for you to
learn.
Swift
Swift is based on Objective-C, and will be even easier for a
Java programmer to learn and use. Most of the changes not only make it easier
to produce programs in general, but make it conceptually simpler for a Java
programmer to make the transition. You'll be reading the code in the first day,
and will be able to produce effective code with only a few hours of work. As
with Objective-C, there are new libraries for you to learn tied to Swift's
platforms (iOS and Mac), but you will find these even easier to navigate than
the Java libraries that suffer from Java's early history of development being
encased within them.
PHP
PHP does not have the sort of object-oriented programming
facilities that you will be used to from Java, but its syntax will be easy for
you to pick up. You will likely feel limited by PHP compared to Java, but PHP
has a more limited purpose than Java--it is focused on web programming. While
Java is heavily used for server-side web programming, it is much more of a
general purpose language than PHP.
You will need to learn the specifics of PHP's syntax and
data structures, but after mastering Java, you will not find this difficult.
Summary
These cover the most popular programming languages in use at
this time. There are other languages, like Scala, that are specifically
designed to be like Java yet address shortcomings perceived in Java, either for
some specific use, or to change things that are historically embedded in Java's
design. These are very easy for a Java programmer to transition to.
At present, Oracle's support of Java is limiting its market
relative to the general use for Java that Sun used to promote. While Java is
still widely used, and will continue to be for the foreseeable future, it
always behooves a programmer to be competent in multiple languages and to have
more than one set of conceptual tools for problem solving at hand. So it is
good to know other languages, even if they are scripting languages like Python
and Ruby.
Currently, Microsoft is in the process of making a strong
play to the cross-platform development market which Java has served. With C# as
part of this, and C# plus Mono (a cross-platform version of .Net) already
available, it is very easy for a Java programmer to add this to their
programming portfolio to gain a greater range of opportunities for work, and a
wider range of tools for solving programming problems.
I highly recommend, at least, spending some time with C#
under Mono or .Net if you are currently a Java programmer. I think you'll find
that you feel right at home.
An advantage of learning .Net is that it will open up
Windows-specific programming in C++ to you as well. The C++ language will be
new, but you'll already know the libraries that you'll be using. If Microsoft
delivers on their recent promises of making their tools fully cross-platform
for Mac and Linux, then you'll be able to apply those skills to those platforms
as well.
Mobile
Java is the language you'll use on Android, currently the
dominant mobile platform in terms of users. Objective-C is the language for
iOS, and it's not a huge jump for a Java programmer to make. Swift is a
simplified version of Objective-C, and it is even easier for the Java
programmer to learn. If you are planning to develop for iOS, it is worth making
the effort to transition to a language built for it, and Swift should be your
first stop.[Source]-You can program in Java (or are learning to.) That's great!
But what else can you do with those skills? Are you trapped with Java?
A Java Tutorial for Beginners Institute teaches you to
create own website with best java certification programs, core java, advanced
java.
Comments
Post a Comment