PDA

View Full Version : Which is easier, Windows programming or Linux/Ubuntu



t-rev
September 5th, 2008, 11:21 PM
so im new to programming, im a junior in high school working with Microsoft Visual Basic. im very computer literate. and i was wondering if anyone knew which is easier to do, windows programming or programming for the linux enviroment?

LaRoza
September 5th, 2008, 11:23 PM
so im new to programming, im a junior in high school working with Microsoft Visual Basic. im very computer literate. and i was wondering if anyone knew which is easier to do, windows programming or programming for the linux enviroment?

If you are programming "for" a platform, it requires knowledge of that platform. If you are developing on a platform (like doing C on Linux/Windows) it is the same.

Programming in C, Python, Java, etc is the same on Linux as it is on Windows (free languages). VB is supported I believe by the mono project but I never used it.

t-rev
September 5th, 2008, 11:28 PM
so basically what your saying is since its a free language its all the same in the long run?

CptPicard
September 5th, 2008, 11:31 PM
The Linux environment is much more diverse... with choice comes some complexity, but in general in the long run, dedicated hackers are much happier with the free choice than enforced "ease".. :)

LaRoza
September 5th, 2008, 11:33 PM
so basically what your saying is since its a free language its all the same in the long run?

Well, in the short run.

In the long run, Linux would be easier because that is where the action is. You have the repositories and such and an unencumbered OS.

t-rev
September 5th, 2008, 11:49 PM
well im deffinatly going to look into all of this

not so much on the hacking part though.
haha

but thanks!

CptPicard
September 5th, 2008, 11:59 PM
not so much on the hacking part though.


You should really look at a proper definition of that much-abused and misunderstood word...

cmay
September 6th, 2008, 12:02 AM
is it not something like that its more easy to ask in ubuntu forums how to hack a linux kernel than it is to ask microsoft how to hack a vista kernel?

pmasiar
September 6th, 2008, 02:04 AM
I am not sure what exactly is your question:

What language is better for beginner?
See FAQ in my sig:
- Why I believe that Python is the best language for beginner: with Python shell, even better than VB with any IDE
- Why scripting languages are being considered for CompSci 101

And Python is 99/9% same on Windows and Linux :-)

Or your question is, on what platform VB is better?

VB is proprietary MSFT, Mono will never be able to catch up (by design).

Or your question is, which platform has more and better tools for developer? Linux wins: because hackers can adjust and improve tools, but only if they have sources.

Even if MSFT beginner's tools may have more sleek GUI, they do not have the power, because MSFT does not trust developers.

mujambee
September 6th, 2008, 05:52 AM
The Linux environment is much more diverse... with choice comes some complexity, but in general in the long run, dedicated hackers are much happier with the free choice than enforced "ease".. :)

That's one big point for Windows. There is a unified API that does ALL. If you don't know how to do this or that you can just go to MSDN and look it up. In a Linux system you first have to figure out what project is responsible for that, look at their specs and get used to their particular progamming style...

doas777
September 6th, 2008, 06:19 AM
so im new to programming, im a junior in high school working with Microsoft Visual Basic. im very computer literate. and i was wondering if anyone knew which is easier to do, windows programming or programming for the linux enviroment?

it really depends on what you wanna program. if you want to support business, the MS .Net platfrom is the easiest. for anything non-win platform, java will be rather familliar to you if you've worked with VB.

pmasiar
September 6th, 2008, 04:55 PM
That's one big point for Windows. There is a unified API that does ALL. If you don't know how to do this or that you can just go to MSDN and look it up. In a Linux system you first have to figure out what project is responsible for that, look at their specs and get used to their particular progamming style...

Excuse me?

Firstly, with .NET, you do not have sources: you can do only what you are allowed to do.

Secondly, .NET has many overlapping versions: 1.0, 2.0, 3.0, 3.5. I used it for a project a while ago, it was messy. Joel Sposky's article Fire And Motion (http://www.joelonsoftware.com/articles/fog0000000339.html) describes how MSFT uses releasing new versions of API as "cover fire" to win over competition (and force developers to "upgrade treadmill").



But the end result [of new versions] is just cover fire. The competition has no choice but to spend all their time porting and keeping up, time that they can't spend writing new features. Look closely at the software landscape. The companies that do well are the ones who rely least on big companies and don't have to spend all their cycles catching up and reimplementing and fixing bugs that crop up only on Windows XP.

Forcefeeding "upgrade treadmill" is **bug** in MSFT business model, not a feature 8-)

mujambee
September 6th, 2008, 06:30 PM
Firstly, with .NET, you do not have sources: you can do only what you are allowed to do.

Secondly, .NET has many overlapping versions: 1.0, 2.0, 3.0, 3.5. I used it for a project a while ago, it was messy. Joel Sposky's article Fire And Motion (http://www.joelonsoftware.com/articles/fog0000000339.html) describes how MSFT uses releasing new versions of API as "cover fire" to win over competition (and force developers to "upgrade treadmill").


Did I inadvertedly mention .NET? I seem to recall writing only about the Windows API ;)

Reiger
September 6th, 2008, 09:50 PM
Okay, bear with me it's 22:44 over here so this remark may not be the pinaccle of razor sharp analysis... but: since when is this a thread about programming languages?

Getting back on topic; the answer is:

a) It doesn't make a blind bit of difference but ...
b) ... it does if you want certain things done quickly and easily (Linux is better because you get a lot of interpreters for a wide array of programming language out of the box....)
c) but not really 'cause you can spend ~15mins of work and install most of them in Windows too...
d) yet some of the 'best kept secrets' may not be [as readily] available...
e) and you lack a powerful command shell...
f) but that can be mitigated by an open source shell...
h) and in the end it boils down to your own old rusty ways of doing things regardless...
i) which is to say: it doesn't make a blind bit of difference after all.

Or does it?

happysmileman
September 6th, 2008, 11:31 PM
I would say developing for Linux would be easier if you are willing to release open source software, because generally you just have to publish your source code and say what libraries you used, and if it's to be included in any distros the package maintainers take care of compiling it and making sure dependencies are met.

Whereas in Windows you must provide the installer yourself and make sure any libraries needed are included, instead of just having a package depend on the right libraries

chousho
September 7th, 2008, 02:05 AM
Hmm, "easier" can be taken so many ways. As well, many of the popular languages used are cross-platform, making the point moot. So I'll take a stab in general.

Beginning: I would say both Linux and Windows are even at this point. There really isn't anything major when trying to just understand the semantics that individually separates Windows from Linux.

As far as environments: Windows definitely has a huge advantage with Visual Studio. I still haven't found anything quite to that standard on the Linux side (someone please show me if there is). Linux has a handful of IDEs that are really good, Eclipse, Anjuta and from what I've heard, Emacs.

Personally, I would say Linux is more "code geared". Windows is more of a jack of all trades that tries to make itself available to everybody. Linux is, essentially, open to everyone, but allows you to delve into the code on multiple levels. BASH is just one great example of that.

If you want to ease into programming, while being in both a code and visual environment (in this regard, I mean CLI and GUI, Terminal and the DE) then Linux is definitely the choice.

slavik
September 7th, 2008, 03:20 AM
That's one big point for Windows. There is a unified API that does ALL. If you don't know how to do this or that you can just go to MSDN and look it up. In a Linux system you first have to figure out what project is responsible for that, look at their specs and get used to their particular progamming style...

Hmm: DirectX which is a collection of DirectShow, DirectInput, Direct3D (an others?), Win32, Win16, MFC, WMI and finally .NET (this is what you are supposed to use now, not MFC). Which API are we talking about? Windows does not have a single API. There is an API for system stuff (.NET), then there is a 3D API (DirectX) and others. Just because MSDN unites the documentation for all of them (it is still not that good, IMHO) doesn't mean that Windows has a single API/Library.

As for knowing which project does what, well, how do you look up the function to create a media player on Windows? You do the same for Linux, you find the multimedia framework that is in the system (gstreamer) and then search their page for stuff instead of msdn.microsoft.com ...

Not only that, but I can trust that the open source project does not have hidden documentation.

pmasiar
September 7th, 2008, 03:42 AM
As far as environments: Windows definitely has a huge advantage with Visual Studio. I still haven't found anything quite to that standard on the Linux side (someone please show me if there is).

I was forced to use VS, and it was pure pain. Best IDE I used so far was IntelliJ (really intuitive, suggesting right things), but Eclipse is good enough, and free, and it's hard to compete with free.

VS (and all IDEs) are useful for someone who considers most important task of programmer to generate lines of code - the more the better. So IDEs let you generate code with templates, and suggest methods, etc. But measuring productivity in lines of code is like measuring quality of plane in weight: the more lines of code you have (to solve the same problem) **the worse your code is** - because someone needs to maintain, read, modify that code. Good editors (like vim, emacs) help you with not creating more code, but **less code** - help with refactoring.

Of course this virtue is lost on people whose longest code is 500 lines. Try to maintain 40MB of code (500KLOC) and then talk to me about what features are important in IDE 8-)

init1
September 7th, 2008, 03:55 AM
I wouldn't say that either is easier, but Windows programming is far more practical.

LaRoza
September 7th, 2008, 04:01 AM
I wouldn't say that either is easier, but Windows programming is far more practical.

How? Linux development is built on people developing for Linux. Microsoft Windows is built on paid programmers and company acquisitions.

pmasiar
September 7th, 2008, 04:47 AM
I wouldn't say that either is easier, but Windows programming is far more practical.

Why? Using Linux is simplest way to save money. Companies use Linux where they can, and Windows where they must.

Socrates1013
September 7th, 2008, 05:04 AM
In my opinion, .NET is easier, i.e. Windows. all the classes are built in, all you have to do is implement. Not to mention Intellisense and MSDN spelling everything out for us :). However, if you are indecisive at the moment, learn C under either platform. Like the earlier post said, it is virtually the same in both OSes. Thats the language i would recommend for beginners, and makes all the rest of the O.O. languages ( C++, C#, Java, etc.) easier to learn.

slavik
September 7th, 2008, 05:06 AM
Why? Using Linux is simplest way to save money. Companies use Linux where they can, and Windows where they must.

Actually, it's more like CentOS where they can and RHEL where they must. :) (different industry I guess).