Sunteți pe pagina 1din 7

There are hundreds of programming languages in use today.

How can you know which


one to learn first? How do you know which ones are the best for your IT field o
f choice? Well, I can't answer that question for you. But why not start by learn
ing one of the top 10 most popular ones? That way you will always be able to get
a job in the IT industry.
Learning a programming language is not easy, but it can be very rewarding. You w
ill have a lot of questions at first. Just remember to get help when you need it
! You can find out the answer to almost everything on Google nowadays.... so the
re is no excuse for failure. Also remember that it takes years to become an expe
rt programmer. Don't expect to get good overnight. Just keep learning something
new every day and eventually you will be competent enough to get the job done ;)
This article covers the top 10 most popular programming languages as ranked by T
iobe.com in June 2009. I have added some general reviews and comments about each
language they listed. Remember these are my own personal opinions. Other IT pro
fessionals might have different opinions.
1. Java
Java uses a compiler, and is an object-oriented language released in 1995 by Sun
Microsystems. Java is the number one programming language today for many reason
s. First, it is a well-organized language with a strong library of reusable soft
ware components. Second, programs written in Java can run on many different comp
uter architectures and operating systems because of the use of the JVM ( Java vi
rtual machine ). Sometimes this is referred to as code portability or even WORA
( write once, run anywhere ). Third, Java is the language most likely to be taug
ht in university computer science classes. A lot of computer science theory book
s written in the past decade use Java in the code examples. So learning Java syn
tax is a good idea even if you never actually code in it.
Java Strengths: WORA, popularity
Java Weaknesses: Slower than natively compiled languages
2. C
C is a compiled, procedural language developed in 1972 by Dennis Ritchie for use
in the UNIX operating system. Although designed to be portable in nature, C pro
grams must be specifically compiled for computers with different architectures a
nd operating systems. This helps make them lightning fast. Although C is a relat
ively old language, it is still widely used for system programming, writing othe
r programming languages, and in embedded systems.
Strengths: Speed
Weaknesses: Memory management can be difficult to master
3. C++
C++ is a compiled, multi-paradigm language written as an update to C in 1979 by
Bjarne Stroustrup. It attempts to be backwards-compatible with C and brings obje
ct-orientation, which helps in larger projects. Despite it's age, C++ is used to
create a wide array of applications from games to office suites.
Strengths: Speed
Weaknesses: C++ is older and considered more clumsy than newer object-oriented l
anguages such as Java or C#.
4. PHP
PHP uses a run-time interpreter, and is a multi-paradigm language originally dev
eloped in 1996 by Rasmus Lerdorf to create dynamic web pages. At first it was no
t even a real programming language, but over time it eventually grew into a full
y featured object-oriented programming language. Although PHP has been much crit
icized in the past for being a bit sloppy and insecure, it's been pretty good si
nce version 5 came out in 2004. It's hard to argue with success. Today, PHP is t
he most popular language used to write web applications. Even English 4 IT, the
program you are currently using, is written in PHP ;)

Strengths: Web programming, good documentation


Weaknesses: Inconsistent syntax, too many ways to do the same thing, a history o
f bizarre security decisions
5. VB ( or Visual Basic ) Visual Basic is an interpreted, multi-paradigm languag
e developed by Microsoft Corporation for the Windows platform. It has been evolv
ing over the years and is seen as a direct descendant of Microsoft's old BASIC f
rom the 1970's. Visual Basic is a good language for scripting Windows applicatio
ns that do not need the power and speed of C#.
Strengths: None.
Weaknesses: Only runs in Windows
6. Python
Python is an interpreted, multi-paradigm programming language written by Guido v
an Rossum in the late 1980's and intended for general programming purposes. Pyth
on was not named after the snake but actually after the Monty Python comedy grou
p. Python is characterized by its use of indentation for readability, and its en
couragement for elegant code by making developers do similar things in similar w
ays. Python is used as the main programming choice of both Google and Ubuntu.
Strengths: Excellent readability and overall philosophy
Weaknesses: None
7 C#
C# is a compiled, object-oriented language written by Microsoft. It is an open s
pecification, but rarely seen on any non-Windows platform. C# was conceived as M
icrosoft's premium language in its .NET Framework. It is very similar to Java in
both syntax and nature.
Strengths: Powerful and pretty fast
Weaknesses: Only really suitable for Windows
8. JavaScript
JavaScript is an interpreted, multi-paradigm language. A very strange one too. D
espite it's name, it has nothing whatsoever to do with Java. You will rarely, if
ever, see this language outside of a web browser. It is basically a language me
ant to script behaviors in web browsers and used for things such as web form val
idation and AJAX style web applications. The trend in the future seems to be bui
lding more and more complex applications in JavaScript, even simple online games
and office suites. The success of this trend will depend upon advancements in t
he speed of a browser's JavaScript interpreter. If you want to be correct, the r
eal name of this programming language is ECMAscript, although almost nobody actu
ally calls it this.
Strengths: it's the only reliable way to do client-side web programming
Weaknesses: it's only really useful in a web browser
9. Perl
Perl is an interpreted, multi-paradigm language written by Larry Wall in 1986. I
t is characterized by a somewhat disorganized and scary-looking syntax which onl
y makes sense to other PERL programmers ;) However, a lot of veteran programmers
love it and use if every day as their primary language. 10 years ago, Perl was
more popular than it is today. What happened? A lot of newer programmers and eve
n old Perl programmers (such as myself) have switched to other languages such as
PHP, Python, and Ruby. Perl is perhaps still the best language for text process
ing and system administration scripting. I personally do not recommend it howeve
r as a primary programming language.
Strengths: text processing and system administration
Weaknesses: strange syntax, and perhaps too many ways to do the same thing
10. Ruby
Ruby is an interpreted, object-oriented language written by Yukihiro Matsumoto a
round 1995. It is one of the most object-oriented languages in the world. Everyt
hing is an object in Ruby, even letters and numbers can have method calls. It's

a great language to learn if you love objects. The only negative is that it's lo
ve of object-orientation makes it a bit slow, even for an interpreted language.
Strengths: Perhaps the world's most object-oriented language
Weaknesses: its superior object model comes at a price... namely speed
Okay! Those are the top 10 programming languages in use today and some personal
comments about them. Remember that opinions are like noses, everyone has one and
they all smell ;) If you disagree, please feel free to email me or write your o
wn opinions on the forum.
This is the end of the reading!
------------------------------------------------------language is an essential part of being a good and successful Web developer.
IDC MarketScape: Worldwide Enterprise Social Networks 2014 Vendor Assessment D
ownload Now
"One of my mentors once told me that a programming language is just a programmin
g language. It doesnt matter if youre a good programmer, its the syntax that mat
ters," Tim Huckaby, CEO of San Diego-based software engineering company CEO Inte
rknowlogy.com, told eWEEK.
However, Huckaby said that while his company is "swimming" in work, hes having a
nearly impossible time finding recruits, even on the entry level, that know spe
cific programming languages. "Were hiring like crazy, but were not having an eas
y time. Were just looking for attitude and aptitude, kids right out of school th
at know .Net, or even Java, because with that we can train them on .Net," said H
uckaby. "Dont get fixated on one or two languages. When I started in 1969, FORTR
AN, COBOL and S/360 Assembler were the big tickets. Today, Java, C and Visual Ba
sic are. In 10 years time, some new set of languages will be the in thing. At las
t count, I knew/have learned over 24 different languages in over 30 years," Wayn
e Duqaine, director of Software Development at Grandview Systems, of Sebastopol,
Calif., told eWEEK. By picking the brains of Web developers and IT recruiters,
eWEEK selected 10 programming languages that are a bonus for developers to add t
o their resumes. Even better, theyre great jumping-off points, with loads of job
opportunities for younger recruits.
1. PHP
What it is: An open-source, interpretive, server-side, cross-platform, HTML scri
pting language, especially well-suited for Web development as it can be embedded
into HTML pages.
Why you should learn it: Its particularly widely used. "High-speed scripting wit
h caching, augmented with compiled code plug-ins (such as can be done with Perl
and PHP) is where the future is. Building Web apps from scratch using C or COBOL
is going the way of the dinosaur," said Duquaine.
Job availabilities: 1,152*
2. C#
What it is: A general-purpose, compiled, object-oriented programming language de
veloped by Microsoft as part of its .NET initiative, it evolved from C and C++
Why you should learn it: Its an essential part of the .Net framework. "Learning
C#, which is just Java with a different name plate, is critical if you heavily u
se Microsoft," said Duquaine.
Job availabilities: 5,111
3. AJAX (Asynchronous JavaScript and XML)
What it is: Though technically not a programming language, AJAX uses XHTML or HT
ML, JavaScript and XML to create interactive Web applications.
Why you should learn it: Ever since Google Maps put AJAX, well, on the map, the
requests for AJAX-knowledgeable pros went through the roof. "The demand for AJAX
knowledge is huge because its so damned hard to learn," said Huckaby. Of note,
Microsoft announced recently plans to release a tool named Atlas that will make
AJAX easier to implement. "If Microsofts Atlas tool is successful, it would brin
g the extreme complexity and annoyance of AJAX to the average worker," said Huck
aby.

Job availabilities : 1,106


4. JavaScript
What it is: Not to be confused with Java, JavaScript is a an object-oriented, sc
ripting programming language that runs in the Web browser on the client side. It
s smaller than Java, with a simplified set of commands, easier to code and doesn
t have to be compiled.
Why you should learn it: Embedded into HTML, its used in millions of Web pages t
o validate forms, create cookies, detect browsers and improve the design. With i
ts simplicity to learn as well as wide use, its considered a great bang for your
educational buck.
Job availabilities: 4,406
5. Perl
What it is: Perl is an open-source, cross-platform, server-side interpretive pro
gramming language used extensively to process text through CGI programs.
Why you should learn it: Perls power in processing of piles of text has made it
very popular and widely used to write Web server programs for a range of tasks.
"Learning some form of scripting language, such as Perl or PHP is critical if yo
u are doing Web apps," said Duquaine.
Job availabilities: 4,810
6. C
What it is: A standardized, general-purpose programming language, its one of the
most pervasive languages and the basis for several others (such as C++).
Why you should learn it: "Learning C is crucial. Once you learn C, making the ju
mp to Java or C# is fairly easy, because a lot of the syntax is common. Also, a
lot of C syntax is used in scripting languages," said Duquaine.
Job availabilities: 6,164, including all derivatives
7. Ruby and Ruby on Rails
What they are: Ruby is a dynamic, object-oriented, open-source programming langu
age; Ruby on Rails is an open-source Web application framework written in Ruby t
hat closely follows the MVC (Model-View-Controller) architecture.
Why you should learn it: With a focus on simplicity, productivity and letting th
e computers do the work, in a few years, its usage has spread quickly. As a bonu
s, many find it easy to learn.
Job availabilities : 210 and 54, respectively
8. Java
What it is: An object-oriented programming language developed by James Gosling a
nd colleagues at Sun Microsystems in the early 1990s.
Why you should learn it: Hailed by many developers as a "beautiful" language, it
is central to the non-.Net programming experience. "Learning Java is critical i
f you are non-Microsoft," said Duquaine.
Job availabilities: 14,408
9. Python
What it is: An interpreted, dynamically object-oriented, open-source programming
language that utilizes automatic memory management.
Why you should learn it: Designed to be a highly readable, minimalist language,
many say it has a sense of humor (spam and eggs, rather than foo and bar), Pytho
n is used extensively by Google as well as in academia because of its syntactic
simplicity.
Job availabilities: 811
10. VB.Net (Visual Basic .Net)
What it is: An object-oriented language implemented on Microsofts .Net framework
.
Why you should learn it: Most argue that VB.Net is currently more popular than e
ver and one of the only "must-learns." "It is currently dominating in adoption a
nd that is where all the work is," said Huckaby.
Job availabilities: 2,090
* All numbers on job availability were pulled from nationwide queries on Dice.co
m, a job site for technology professionals. Check out eWEEK.coms for the latest
news, reviews and analysis in programming environments and developer tools.
----------------------------------------------------

Run Unix. Unix is the operating system of the Internet. While you can learn to u
se the Internet without knowing Unix, you can't be an Internet hacker without un
derstanding Unix. For this reason, the hacker culture today is pretty strongly U
nix-centered. A Unix like Linux can run alongside Microsoft Windows on the same
machine. Download Linux online or find a local Linux user group to help you with
installation.[1]
A good way to dip your toes in the water is to boot up what Linux fans call a li
ve CD, a distribution that runs entirely off a CD without having to modify your
hard disk. This is a way to get a look at the possibilities without having to do
anything drastic.
There are other operating systems besides Unix, but they're distributed in binar
y you can't read the code, and you can't modify it. Trying to learn to hack on a
Microsoft Windows machine or under any other closed-source system is like tryin
g to learn to dance while wearing a body cast.
Under Mac OS X it's possible to run Linux, but only part of the system is open s
ource
you're likely to hit a lot of walls, and you have to be careful not to dev
elop the bad habit of depending on Apple's proprietary code.
Write HTML. If you don't know how to program, learning basic HyperText Mark-Up L
anguage (HTML) and gradually building proficiency is essential. What you see whe
n you look at a website of pictures, images, and design components is all coded
using HTML. For a project, set out to learn how to make a basic home page and wo
rk your way up from there.
In your browser, open the page source information to examine the HTML to see an
example. Go to Web Developer > Page Source in Firefox and spend time looking at
the code.
You can write HTML in a basic word processing program like Notepad or Simple tex
t and save your files as "text only," so you can upload them to a browser and se
e your work translated.[2]
You'll need to learn to format tags and learn to think visually using them.[3] "
<" is used to open a tag and "/> is used to close it. "
" is the opening for a line of paragraph code. You'll use tags to signal anythin
g visual: italics, formatting, color, etc. Learning HTML will help you to unders
tand better how the Internet works
Learn the language of programing. Before you start writing poems you have to lea
rn basic grammar. Before you break the rules you have to learn the rules. But if
your ultimate goal is to become a hacker, you're going to need more than basic
English to write your masterpiece.[4]
Python is a good "language" to start off with because it's cleanly designed, wel
l documented, and relatively kind to beginners. Despite being a good first langu
age, it is not just a toy; it is very powerful, flexible, and well-suited for la
rge projects. Java is an alternative, but its value as a first programming langu
age has been questioned.[5]
If you get into serious programming, you will have to learn C, the core language
of Unix. C++ is very closely related to C; if you know one, learning the other
will not be difficult. C is very efficient with your machine's resources, but wi
ll soak up huge amounts of your time on debugging and is often avoided for that
reason, unless the efficiency of your computer is especially important.
It is probably a good idea to use a good starting platform such as Backtrack 5 R
3, Kali or Ubuntu
----------------------------------------------------I know that scripting languages (Perl, Ruby, Python, javascript, and even Lua!!!
) are most suitable for hacking and penetration testing
Perl
Scripting language
General purpose
Available on most *nix OSes since the '90s.
Great for quick hacks and short scripts.
Ruby
Scripting language
General purpose

Cross-platform
Object-oriented
Reflective (can see its own structure and code)
Good for dynamic frameworks
Python
Scripting language
General purpose
Cross-platform
Designed for clear and readable source code
Huge framework of libraries
JavaScript
Scripting language
Web-based
Cross-platform (available on every major browser)
You probably want Ruby, because it's the native language for Metasploit, which i
s the de facto standard open source penetration testing framework. Ruby's going
to give you:
Metasploit's framework, opcode and shellcode databases
Metasploit's Ruby lorcon bindings for raw 802.11 work
Metasploit's KARMA bindings for 802.11 clientside redirection
Libcurl and net/http for web tool writing
EventMachine for web proxy and fuzzing work (or RFuzz, which extends the well-kn
own Mongrel webserver)
Metasm for shellcode generation
Distorm for x86 disassembly
BinData for binary file format fuzzing.
Second place here goes to Python. There are more pentesting libraries available
in Python than in Ruby (but not enough to offset Metasploit). Commercial tools t
end to support Python as well --- if you're an Immunity CANVAS or CORE Impact cu
stomer, you want Python. Python gives you:
Twisted for network access
PaiMei for program tracing and programmable debugging
CANVAS and Impact support
Dornseif's firewire libraries for remote debugging
Ready integration with WinDbg for remote Windows kernel debugging (there's still
no good answer in Ruby for kernel debugging, which is why I still occasionally
use Python).
Peach Fuzzer and Sully for fuzzing
SpikeProxy for web penetration testing (also, OWASP Pantera).
Unsurprisingly, a lot of web work uses Java tools. The de facto standard web pen
test tool is Burp Suite, which is a Java swing app. Both Ruby and Python have Ja
va variants you can use to get access to tools like that. Also, both Ruby and Py
thon offer:
Direct integration with libpcap for raw packet work
OpenSSL bindings for crypto
IDA Pro extensions
Mature (or at least reasonable) C foreign function interfaces for API access
WxWindows for UI work, and decent web stacks for web UIs
You're not going to go wrong with either language, though for mainstream pentest
work, Metasploit probably edges out all the Python benefits, and at present, fo
r x86 reversing work, Python's superior debugging interfaces edge out all the Ru
by benefits.
Also: it's 2008. They're not "scripting languages". They're programming language
s. ;)
shareimprove this answer
edited May 10 '13 at 13:53

answered Sep 21 '12 at 15:40


NlightNFotis
8471618
1
+1 since largely the capability for re-use of existing frameworks is the single
largest benefit. I can certainly write apps to pen-test in any language, but not
-having to reinvent the wheel (and not having to compile) gives directly execute
d languages a bit of a benefit
iivel Sep 21 '12 at 16:12
@iivel ^^this and compiling is one thing. Debugging is another =)
Sep 21 '12 at 16:13

NlightNFotis

I can't tell you how much I hate debugging PERL though ... at least the Eclipse
PERL debugger is pretty good :) It is good for knocking something out quick - bu
t like LISP; it just hurts my brain.
iivel Sep 21 '12 at 16:17
One huge reason I would choose Python is Scapy. Sure Metasploit runs on Ruby but
thats no reason to make it the "hackers" scripting language of choice.
dc5553
May 12 '13 at 8:56
@dc5553 There are a number of frameworks in Python that are useful for hacking.
Hachoir is another very useful framework used to analyse file types.
NlightNFot
is May 12 '13 at 13:11
show 1 more comment
up vote
6
down vote
Libraries, Time to write Code, cross-platform compatibility are key here. I foun
d that using Python I was able to come up with Proof-of-concept exploits in a ve
ry short amount of time with minimum lines of code. This is possible because of
the extensive standard library and additional libraries that you can download as
well. I believe that is python's greatest strength to be used for pentesting an
d hacking.
Ex. you need a string of 1000 characters / 1000 bytes long.
In python:
print "A"*1000
In C :
for(i=0;i<1000;i++)printf("A");`
(Apart from all the includes mumbo jumbo and compiling it)
That is just a simple example. But as you can see the time taken for such a triv
ial task is far simpler in python.

S-ar putea să vă placă și