Techno
Page
Make IT your
slave
By
Harendra Alwis
Information Technology has become a key phrase we use often
in our day-to-day lives; sometimes without giving much thought to
its underlying meaning. What is Information Technology? Is it the
computer sitting on a table in your office or home? Is it about
the cell-phone you carry around? Is it about fibre optics buried
beneath or satellites orbiting above? These gadgets are all part
of the world we've built, but they have little or no relevance whatsoever
to our daily lives as ordinary people living in a third world country.
IT itself is much more than that.
Information
Technology is about you and me and all the people we work with or
care about. Information Technology should facilitate interpersonal
communication and foster good relationships among people. It should
help us build better friendships and better understand the people
who matter in our lives. Information Technology should be about
spreading messages of peace and love. As much as it facilitates
the growth of your business, it should also help you grow personally,
both in mind and spirit. IT should make better people out of those
who use these marvellous technologies. These new technologies should
be aimed at giving ourselves more time to relax, to spend time with
our families and entertain us instead of tying us down with more
work.
Information
Technology has become a driving force in the global community that
we too are a part of and that force should be put into use to make
the world a better place for all. It is time we focused this power
into making tomorrow an improvement from today. Are you addicted
to computer games? Does that make you neglect those people around
you that matter to you? We must seek to master Information Technology
and be careful not to be slaves to our own creations.
This is my
view, but you are welcome to share your thoughts with us and the
rest of the readers of Techno Page by writing to us @ technopage_lk@yahoo.com
Hackers and
crackers
Someone who enjoys exploring, using and extending technology, (particularly
but not exclusively computer technology) would be a 'Hacker' by
definition. This is a simplification of the issue, however, and
the debate continues as to who actually a hacker is and who qualifies
for membership of the somewhat elite hacker community. Some people
think that, to be a true hacker, a person must be an enthusiastic
programmer, preferably for the UNIX operating system. Others maintain
that an expert or enthusiast of any kind qualifies. Perhaps the
most useful definition is simply someone who enjoys intellectual
challenges and creative problem-solving, especially within the context
of technology.
One generally
recognised truth is that people who call themselves hackers are
probably not true hackers at all. The 'honour' should rather be
conferred by their peers rather than by the individuals themselves.
The word 'hacker' is often used to describe someone who is actually
a Cracker, which enrages the hacker community. As Eric Raymond says
in his enlightening essay, 'How to Become a Hacker', "hackers
build things, crackers break them". And build things they do:
UNIX, USENET, the World Wide Web and the Internet itself are all
the work of hackers.
Sent in by D. Lloyd
Java
Vs C++
Java and C++ have many advantages
over other programming languages. They are object-oriented which
allow programmers to design reusable components easily. They closely
resemble C which makes the language very easy to learn for anyone
who has experience programming in C. Unlike VB and some other visual
languages, they have more flexibility and give enough freedom to
the programmer. Although they have common features, each one has
its own advantages and drawbacks.
Platform independence:
Java generates a platform independent code after the compilation
of a programme. That is, a programme written and compiled in one
platform (e.g. UNIX machine) can be run on a computer having any
other operating system (e.g. Windows or Mac OS). That's one of the
reasons why the World Wide Web has been invaded by Java.
References
vs. Pointers: In C++, there is a separate variable type that contains
addresses of data and functions called pointers. In Java, this is
not so. Instead, references are used in the variable names of objects
themselves.
Automatic variables:
In C++, memory for variables declared within functions (i.e., local
variables) will normally be allocated automatically, on the stack.
In Java, all memory for non-intrinsic data objects must be acquired
with the new operator.
Dynamic memory
management: In C++, memory is dynamically assigned by the programmer
(using the new operator) and must also explicitly be freed (using
the delete operator). In Java, a garbage collection process automatically
locates the memory associated with any object that is no longer
referenced within the programme, meaning no explicit deletion is
required.
Global data
and functions: In C++, data and functions can be declared outside
of any class definition. (In C, all functions are declared that
way). In Java, all data and functions must be declared within class
definitions. Like C++, however, a static declaration may be used
in Java to make member data/functions object independent.
Inheritance:
Unlike C++, Java permits only one parent per class (doesn't support
multiple-inheritance). Many benefits of multiple inheritance be
achieved, however, using Java Interfaces. Java class constructor
functions can also explicitly invoke parent constructors with the
super keyword.
Operator overloading:
This is a very powerful and useful feature in C++, which cannot
be found in Java language.
Vectors: Vectors
are used to hold sets of reference type variables in Java. Sometimes
they are known as arrays with a variable length. In C++ there is
no Vector class. But we can experience some features of Vectors
using Linked-lists in C++.
Boolean Expressions:
In C++, Boolean (false/true) expressions translate to 0, nonzero
integers. In Java, tests are done with the Boolean data type. As
a result, expressions containing && (and) and || (or) stop
evaluating an expression once its results are known to be true or
false, referred to as a 'short-circuit'. The '&' and '|' operators,
in contrast, evaluate both sides of their expressions even if the
final result is already known (e.g., the left side of an '&'
expression is false).
GUI components
and graphics: Using C++ (or c), we can only make console applications,
which are driven on command prompt. That is because pure C++ doesn't
have GUI components in its own standard libraries. Microsoft's Visual
C++ uses Microsoft Foundation Classes to create GUIs. Java has very
powerful GUI packages such as AWT (Abstract window toolkit) and
Swing and has a collection of graphic supported packages, like 2D
API, 3D API etc.
Efficiency:
Compared to Java, C++ programmes are more efficient. Standard testing
methodologies show that a normal console application written in
Java can be 8 times slower than the same programme in C++. This
is attributed to the fact that Java byte code has to be interpreted
by the Java virtual machine before it can be executed.
Sent in by Chamith Siriwardena
|