Wanna_Be_Big

Whats the most powerful and versatile programming language?

44 posts in this topic

Yup, I agree Python is a great language to learn.

With experience in Python/C/ASM I think you've got a strong foundation to develop anything powerful and/or versitle.

0

Share this post


Link to post
Share on other sites
.NET is wonderful. It's driving a lot of the industry right now. If .NET sucked, no one would use it.

Lots of people invested into dotcoms and milions bought tamagotchis. Did it make them any better? (just pointing out the faulty logic)

0

Share this post


Link to post
Share on other sites
Doesn't this subject come up every week or so? There is no "perfect", "best" or "most powerful" language.

  • Step 1: Pick a language. Any language really, just don't pick anything really obscure, half finished or ancient at first.
  • Step 2: Learn the language. Learn it well. Reading a 10 part tutorial and typing in the example code is not learning a language.
  • Step 3: Use the language. Continue doing this for some time.
  • Step 4: Analyze the language. Identify any faults you just can't live with. Move on to another language if you feel the need.

thats alot of trial and error

0

Share this post


Link to post
Share on other sites

Previously it was PERL. 70% of all hacking-based software or scripts were written in PERL.

Now it's up against Python and Ruby.

Ruby wins with me because:

--------------------------------

- Pure OOP

- Cross platform multi-threading, and threading (yes, believe it)

- Interpreted (meaning it's 100% cross platform)

- Easier to read than PERL

- More dynamically typed, unlike python with it's required indentation (which is terrible, but others can argue it's good)

- RoR is incredibly easy to use, and efficient

- Much like the creator Matz I was (and still am) a C++ programmer. Going to Ruby was easier than going to python.

- Strong exception handling

- PERL-like Regex

- Fairly large STL

I don't like that Ruby is a tad slower (However, on a decent system this speed difference is not noticeable at all). I also don't like how it doesn't have an extensive repository of modules like PERL does. However it still dominates in my eyes. In fact, metasploit was rewritten from PERL to Ruby (C was considered but tossed, because anyone trying to make a 100% portable framework would be 100000x harder to do in anything but an interpreted language, and unlike alot of people like to think harder doesn't always mean better). It is 10 years old, but only recently left Japan and went international. So people are just starting to really get building with it. I'm even bold enough to say that it will be the new PERL.

The best way to go is C++ and an interpreted language. I really only use C for lower-level programming (and believe it or not, ruby can go lower than most interpreted languages) and some very rare occasions where C might be more productive to use. Follow the "Use the best tool for the job doctrine".

Edited by deadc0de
0

Share this post


Link to post
Share on other sites
- More dynamically typed, unlike python with it's required indentation (which is terrible, but others can argue it's good)

- Fairly large STL

Right...

because anyone trying to make a 100% portable framework would be 100000x harder to do in anything but an interpreted language, and unlike alot of people like to think harder doesn't always mean better

C is very portable, just look at NetBSD. It's only a matter of writing portable code. If the framework provides interfaces for this, there should be no problems. I don't think they didn't choose C 'cause of portability issues.

0

Share this post


Link to post
Share on other sites
- More dynamically typed, unlike python with it's required indentation (which is terrible, but others can argue it's good)

- Fairly large STL

Right...

because anyone trying to make a 100% portable framework would be 100000x harder to do in anything but an interpreted language, and unlike alot of people like to think harder doesn't always mean better

C is very portable, just look at NetBSD. It's only a matter of writing portable code. If the framework provides interfaces for this, there should be no problems. I don't think they didn't choose C 'cause of portability issues.

You didn't even argue any valid points here.

First off what was the development time-line for NetBSD, and how long did it take to port it across frameworks and architectures? Yes C is completely portable. But is it quick and easy to say, port a large Windows or Linux development project across platforms or even architectures? No. Not at all. Even at the simplest level you need 2 different compilers, and whole entire new set of libraries (ex. Can't use winsock2.h in Linux can you!)

Secondly,

http://framework.metasploit.com/documents/...opers_guide.pdf

and I quote

"The C/C++ programming languages were also deeply considered but in the end it was obvious that attempting to deploy a portable and usable framework in a non-interpreted language was something that would not be feasible. Furthermore the development time-line for this language selection would most likely be much longer".

Why don't you read before talking next time?

The Ruby STL is quite large. You don't know it until you try it. Read some books on it before shit-talking it. As for python, line indentation that is REQUIRED for a script or program to work correctly is not natural to alot of people (even this is covered in the developers guide for metasploit), and is really annoying when you fuck it up.

Just read the developers manual. They have a section called "Why Ruby?" that is there to explain to people like you why they did it.

Edited by deadc0de
0

Share this post


Link to post
Share on other sites
Previously it was PERL. 70% of all hacking-based software or scripts were written in PERL.

92% of statistics are made up. 43% of people know that.

- Cross platform multi-threading, and threading (yes, believe it)

Ruby's concurrency support is pathetic compared to other languages (Erlang, Limbo, Mozart/Oz, Alice, etc). The implementation choices are inherently flawed for dealing with large-scale concurrent programs. They're really not something to brag about.

- More dynamically typed, unlike python with it's required indentation (which is terrible, but others can argue it's good)

What does Python's forced indentation have to do with dynamic typing? It's a choice the designers made to try to enforce readable programs, one that most good programmers would enforce naturally.

Edited by Lugner
0

Share this post


Link to post
Share on other sites
Previously it was PERL. 70% of all hacking-based software or scripts were written in PERL.

92% of statistics are made up. 43% of people know that.

- Cross platform multi-threading, and threading (yes, believe it)

Ruby's concurrency support is pathetic compared to other languages (Erlang, Limbo, Mozart/Oz, Alice, etc). The implementation choices are inherently flawed for dealing with large-scale concurrent programs. They're really not something to brag about.

- More dynamically typed, unlike python with it's required indentation (which is terrible, but others can argue it's good)

What does Python's forced indentation have to do with dynamic typing? It's a choice the designers made to try to enforce readable programs, one that most good programmers would enforce naturally.

So wait, you'd write a large scale, multi-threaded program in a interpreted language?

Once again, that was a plus for me. I've never even heard of half the languages you listed, because they obviously aren't popular enough for me to even care. Ruby is new to the scene once again, and it's still being worked on to be faster, and better.

Go back to my last sentence. Use the right tool for the job. Larger scale projects should use a language like C. The rest of it I won't even address because you're flamebaiting.

Edited by deadc0de
0

Share this post


Link to post
Share on other sites
So wait, you'd write a large scale, multi-threaded program in a interpreted language?

Once again, that was a plus for me. I've never even heard of half the languages you listed, because they obviously aren't popular enough for me to even care. Ruby is new to the scene once again, and it's still being worked on to be faster, and better.

Go back to my last sentence. Use the right tool for the job. Larger scale projects should use a language like C. The rest of it I won't even address because you're flamebaiting.

You've clearly never used C, or any language for that matter, to write a multi-threaded program that can handle load.

Furthermore, one moment you say that Ruby's threading is a good thing, now you're trying to ignore the valid criticism. Which is: Are you proud of it's threading or not?

My other two points are also valid. You made up that Perl statistic, and you clearly don't know what dynamic typing is if you think Python's forced indentation has anything to do with it.

And finally, one moment you say "right tool for the right job" and the next you denounce languages because they're unknown. You've done nothing but contradict yourself and back peddle. Take a position and defend it.

Edited by Lugner
0

Share this post


Link to post
Share on other sites
More dynamically typed, unlike python with it's required indentation (which is terrible, but others can argue it's good)

Oh God I lol'd. Next you're gonna tell us that strong typing is when you press the keys REALLY hard.

0

Share this post


Link to post
Share on other sites

I would like deadc0de to explain to me why large scale projects should use a language like C.

0

Share this post


Link to post
Share on other sites
- PERL-like Regex

Welcome to practically every language invented sine Perl (and most languages have libraries for it too!). You make so many epic fail points I just had to login for the first time in months to reply.

0

Share this post


Link to post
Share on other sites
First off what was the development time-line for NetBSD, and how long did it take to port it across frameworks and architectures? Yes C is completely portable. But is it quick and easy to say, port a large Windows or Linux development project across platforms or even architectures? No. Not at all. Even at the simplest level you need 2 different compilers, and whole entire new set of libraries (ex. Can't use winsock2.h in Linux can you!)

If you have a framework providing the library functions needed, you only need to port the libraries. It's a bit more work of course, I just wanted to point out that it isn't "100000x harder". Regarding winsock, you can alway go with:

#ifdef WIN32
#include <windows.h>
// a lotta other elsifs here
#endif

and write a set of low level access functions for networking that provides a common interface so the only things needed to port whould be those libraries.

Secondly,

"The C/C++ programming languages were also deeply considered but in the end it was obvious that attempting to deploy a portable and usable framework in a non-interpreted language was something that would not be feasible. Furthermore the development time-line for this language selection would most likely be much longer".

I stand corrected then :) I can't see why there whould be portability issues if they designed the interaces good, but it's not my project. However, the dev-time whould increase, I agree with that.

Why don't you read before talking next time?

I had a hard time taking you seriously and I was kinda in a hurry when I answered. I know just how portable C is, so I figured every one else (e.g. the guys at metasploit) knew that too.

The Ruby STL is quite large. You don't know it until you try it. Read some books on it before shit-talking it. As for python, line indentation that is REQUIRED for a script or program to work correctly is not natural to alot of people (even this is covered in the developers guide for metasploit), and is really annoying when you fuck it up.

Now you're making assumptions. I've tried Ruby. Let me put it this way then: what does STL means to you? And like the other guys said, dynamic typing is not what you think it is.

EDIT: sp

Edited by swestres
0

Share this post


Link to post
Share on other sites
Why don't you read before talking next time?

I had a hard time taking you seriously and I was kinda in a hurry when I answered. I know just how portable C is, so I figured every one else (e.g. the guys at metasploit) knew that too.

The Ruby STL is quite large. You don't know it until you try it. Read some books on it before shit-talking it. As for python, line indentation that is REQUIRED for a script or program to work correctly is not natural to alot of people (even this is covered in the developers guide for metasploit), and is really annoying when you fuck it up.

Now you're making assumptions. I've tried Ruby. Let me put it this way then: what does STL means to you? And like the other guys said, dynamic typing is not what you think it is.

EDIT: sp

I'm guessing he's using STL to mean "STandard Library", which is wrong. STL stands for Standard Template Library.

0

Share this post


Link to post
Share on other sites
I recommend C or Ada. Maybe I'm old school, but I prefer procedural languages over OOP any day of the week.

I agree entirely. OOP is rather limited and extremely simplistic in that it grants you little direct control over the computer processing power at the low level. This isn't always needed, though. I am not really competent in any languages except assembly for x86 and I am learning C. I have dabbled in various languages though; here is my suggestion for usage:

Perl-Networking, GUI

C-Almost anything at the kernel level; particularly mathamatical and logical operations

C#-Improved version of C (apparently doesn't crash as often)

assembly-Virus analysis, copyright protection schemes, buffers, etc. Low level. Almost anything that requires direct manipulation of memory, in conjunction with C.

Lisp-AI, robotics.

1

Share this post


Link to post
Share on other sites
Whats the most powerful and versatile programming language?

Isn't that straight-forward binary rather than just assembly even though it's rather nearly impossible to program in binary from a human.

0

Share this post


Link to post
Share on other sites
C#-Improved version of C (apparently doesn't crash as often)

LOL

Also:

Don't hate yourself so much; use C and asm less.

srsly.

0

Share this post


Link to post
Share on other sites
So I think the real question is what is the best language FOR YOU.

I Agree. I think it is a matter of personal taste. Use a language that fits your way of thinking that doesn't require you to make strange mind bends to get something done. There is no language that is best for everyone, people are different, so are the workings of their minds.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now