Announcement

Collapse
No announcement yet.

Some opinions wanted (at a crossroads between Windows and Linux)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Some opinions wanted (at a crossroads between Windows and Linux)

    First of all, a note: this is started with the intention that it be a sensible discussion, so flames and baits will be reported immediately.

    Also, warning: This IS A LONG POST.

    And now, to the meat of the issue:

    As some of you have known, recently because of internship commitments I have dropped Linux completely from my notebook and desktops in favor of Windows to devote time to accquainting myself with Microsoft technologies. And generally I am a fan of Microsoft software (as in I genuinely enjoy using MS software (yes, even Windows 8!) for getting work done to the point that I have invested in a Microsoft TechNet account to get complimentary access to all of Microsoft's non-developer software in return for a yearly subscription fee). To satisfy my 'build the source code yourself' cravings Visual Studio Express generally does an a-ok job for Windows applications that are open-sourced unless it makes use of GTK or Qt libraries (in which the compilation process becomes a real pain in the nuts, but I digress).

    However every so often some doubts enter my mind about the future of Microsoft in the desktop and enterprise space so I would really, really appreciate some feedback on whether I am doing the 'right thing', so to speak. For one, it is no secret that Microsoft's dominance is limited only to the desktop and notebook space; Windows Phone, as much as I enjoy using it, is never going to break past its distant third position in the smartphone space, and Windows RT is not going to improve Redmond's tablet ambitions, at least for the forseeable future. And even now there is talk that Microsoft may very well lose its desktop / notebook pie as well...

    By casting my lot with Microsoft, am I risking what would be why potential future career if I limit of learning of Linux only to the server and administration space and focusing on learning as much as I can in Microsoft land such as ASP, .NET, C#, SQL Server and Windows Server administration? Which do you think is more important: to use the tools one is comfortable with to produce the end result desired by the other party, regardless of operating system, or to spread myself out and learn both Windows and Linux tools? Is the desktop really, really dead as a work tool? I really refuse to believe in that, considering how desktops with that kind of processing power are needed to do lots grunt work that the standard consumer is not likely to ever come across in his/her life.

    Last but not least, i just have to ask; it is wrong to like Windows and Microsoft's software? As said earlier, I genuinely enjoy using Microsoft software and as such am fully willing to shell out the money for my TechNet subscription to get complimentary access to a wide range of Microsoft software products. But the vibes I'm getting from many Linux-centric forums are that it's:

    a) impossible for anybody to even like using Microsoft's software products because they are inferior to open-source ones (which I wholeheartedly disagree), and
    b) anybody who so much as says that he/she likes MS software is immediately deemed some kind of shill or mole out to discredit Linux.

    Is it really that wrong to enjoy using a system that one personally likes, and is well-supported by hardware vendors who will always be able to supply launch-day drivers for new hardware, even if those drivers are tightly locked down? What happened to the 'if you like it and are productive with it, use it' approach to computing?

    Thanks for listening.

    ** I know Im very well asking for trouble for even daring to talk about my liking of MS software in a Linux forum. But I really want the feedback and opinions.
    Last edited by Sonadow; 04-24-2013, 09:37 AM.

  • Sonadow
    replied
    To all who answered, thanks. Let me try to sum up what I can understand from all the responses:

    - if I like MS tools and am productive with them, use it.
    - Casting my lot with Microsoft has its fair share of risks, especially with regards to how they treat developers at times (especially when they deprecate frameworks and APIs)
    - In the short term, it's ok to focus on purely Microsoft technologies, but to ensure my employability in this field I have to ensure I don't get get too beholden to one set of tools; at the very least, know how to use more than just Visual Studio, C# and SQL Server. And go deep into whatever language / framework I'm learning at this point so that it makes transition easier, when needed. It is what I can produce for others to use that matters, and not what I use or what I write. I'll keep this in mind.
    - In the medium term it's important to start learning to be a software engineer and not just a developer, and acquire some profficiency in at least 1 -2 other popular programming languages and other development tools to ensure that I cover a few extra fields.
    - Long term will most likely require moving around from language to language and the effort put into the short and medium term portions will directly affect employabiity at this point of time
    - Don't lose sight of the software industry as a whole; it's ok to focus on a few fields (i'm leaning towards desktop software development and backend software maintenance) during the short term but always remember that any field is but a small picture of the overall software landscape.
    - There is no such thing as learning only a handful of tools / one language and sticking with it forever because it will never work in today's software industry.

    If that is true, then I think I now have a better idea on what to start with and how to actually go about doing it.

    Oh, and one thing:
    Originally posted by TheCycoONE
    based on the nature of your question I'm assuming your coming in as a Junior where you would be expected to need to learn the environment when you start anyway
    To be honest I'm reaching 30 soon. I know, 30 is a VERY bad age to start joining the workforce especially in such a field. My biggest regret is that I squandered away my youth, and now I have to make up for lost time. It's going to take a LOT of hard work and commitment to get to where I eventually want to be, and even then there no such thing as having success guranteed. Just gotta keep trying and keep moving forward everyday and aim for that one day where, hopefully, I can finally say to my parents, "I did it".
    Last edited by Sonadow; 04-26-2013, 09:49 AM.

    Leave a comment:


  • UseLinuxNotWindows
    replied
    Never forget - Microsoft (or Apple) = "Lock In"

    Forgive the brief digression but my own experience has been a somewhat circular route consisting of:
    1. Starting off in the stone age of microcomputing (late '70's into '80's) with plenty of choice - disparate incompatible machines
    2. Moved onto commercial Unix (and open BSD/Unix) mini computers - plenty of power but locked into commercial software
    3. DOS/Windows machines were not taken seriously at first - until ODBC and 32 bit Windows gave users real freedom and choice
    4. With Windows NT4 and Windows 2000 - PCs had real power - plenty of choice of Office Software and development environments
    5. Microsoft gradually killed off competition (who remembers Borland or Wordperfect these days) and gradually increased the lock-in
    6. Linux gradually improved from hackers only distros (like early Slackware) to now when Linux EASILY as good as Windows (yes really)

    OK not quite a circle - from Unix back to a Unix-like environment (with MFC and .NET in the middle). These days

    Windows = "lack of choice/lock-in"
    Linux = "choice/freedom"

    As others have stated, concentrating on technologies which can run on multiple operating systems like
    • HTML5/Javascript
    • Qt/wxWidgets
    • Java/Groovy
    • Python
    • Apache/Lighttpd/Nginx
    • PHP
    • MySQL or PostgreSQL

    is a better idea (IMHO) than locking yourself into one vendor (like Microsoft, Apple or even Google) and a better investment in your future. Although Windows is still pretty ubiquitous (at the moment), web technologies are becoming the defacto standard. We are fast approaching a tipping point where software writers had better not target just Windows (expecially just x86 based Windows) as it locks out Apple, Chromebook, iPad, Android Tablet, smart phones (or even ARM based Windows 8) etc and need to target multiple platforms. When that happens - bye bye Windows monopoly!

    Exciting but uncertain times I think. I have already thrown my hat in with the open source crowd - a better bet (I think) than the proprietary software group but for you I think betting solely on Microsoft as the way forward might be a little short sighted.

    Leave a comment:


  • TheCycoONE
    replied
    From a career perspective, there will be Microsoft (C#/SQL Server) jobs and there will be Linux jobs, and even some OSX jobs available to you if you market yourself well. (Not to mention of lot of iOS jobs as every company want's an iPhone app these days)

    As far as I'm concerned, it won't affect your enjoyment of the job nearly as much as coworkers, commute time, and other company perks; and based on the nature of your question I'm assuming your coming in as a Junior where you would be expected to need to learn the environment when you start anyway. Maintain a passing familiarity with several technologies so you don't sound completely clueless in the interview and can put some nice keywords on your resume, then become an expert in whatever is relevant when you land the job.

    As a disclaimer, I work primarily with ColdFusion, C#, Sql Server on Windows Server machines. At home / for hobby projects I use Arch Linux, C++, and php.

    Leave a comment:


  • artivision
    replied
    Originally posted by johnc View Post
    When it comes to a career in software (and really all tech-related stuff), you can never cast a lot with a particular technology and then coast through a career. Unfortunately, being in software means constantly keeping up with the stuff that's relevant and re-inventing yourself as the trends shift. And along those lines, I find that the software industry (I'm talking about the actual jobs out there) can be really susceptible to fads and buzzwords.

    So to answer your question, I think there's a short-term and long-term approach. Long-term, expect to move around from this language to that, and this platform to that, adapting to the market needs. (I.e., you don't want to become stagnant or irrelevant.) In this sense, there's a certain aptitude of being a software engineer that you need to develop, and these skills transfer easily from language to language. The short-term approach is to eye up the market in your target location and see what jobs are in high demand. For enterprise, web servers, etc. I still see a lot of Java stuff here on the US East Coast. People who want desktop-style user applications are still in the C# / .NET fold. The web space is all about PHP, JavaScript and whatever fancy new ideas they have now. It really depends on what product you prefer to work on, and what companies are using in your area.

    Regarding the future of Windows... it's a lock for desktop and front-facing enterprise for many, many eons to come. People can't even forecast a potential contender. The only way you can dream up failure is if somehow these target markets themselves disappeared. Of course this is important only in the sense that you'd be writing programs for desktops and the like. Software is such a huge segment out there, and desktop is only a small part. So don't lose sight of the whole picture.

    And as for your opinion of Windows: it's your opinion. Nobody can tell you that what works best for you isn't good enough for you. It's your judgment call and you should have all the confidence in it. Windows has some wonky quirks but so do Linux and OS X. When it comes to software development and other such things, I really struggle without a command line, so working on Windows had always been difficult for me. On the contrary, I know many who swear up and down by Visual Studio and wouldn't touch a line of code without it. But all in all, I think it's important for a software developer to not be too dogmatic about it. Respect the strengths of each OS and be open to developing for each one if such a need arises in the future. I don't use Windows for much other than gaming at this point, but if someone's going to stuff cash in my wallet to make a program that runs on that platform...? I'm listening.

    After developing software for awhile you can become quite flexible with both language and platform and move around fairly easily if necessary. It's all going to depend on where the job focus is at any point in time, and it's hard to predict the future. But I am noticing a greater need for mobile software and things that are web-based (either fancy-pants web sites or server software).


    Mostly correct, i believe the same. But when it comes to predictions i believe that if you have a brain, you can predict. For me its simple, the right thing will win. So Linux will beat Windows and OSX, HTML5 will beat Flash, OpenGL will beat DirectX, VP9 will beat H265, and all that shortly like 1-6 years (depends on each situation). Also do not forget instruction_set independence.

    Leave a comment:


  • johnc
    replied
    When it comes to a career in software (and really all tech-related stuff), you can never cast a lot with a particular technology and then coast through a career. Unfortunately, being in software means constantly keeping up with the stuff that's relevant and re-inventing yourself as the trends shift. And along those lines, I find that the software industry (I'm talking about the actual jobs out there) can be really susceptible to fads and buzzwords.

    So to answer your question, I think there's a short-term and long-term approach. Long-term, expect to move around from this language to that, and this platform to that, adapting to the market needs. (I.e., you don't want to become stagnant or irrelevant.) In this sense, there's a certain aptitude of being a software engineer that you need to develop, and these skills transfer easily from language to language. The short-term approach is to eye up the market in your target location and see what jobs are in high demand. For enterprise, web servers, etc. I still see a lot of Java stuff here on the US East Coast. People who want desktop-style user applications are still in the C# / .NET fold. The web space is all about PHP, JavaScript and whatever fancy new ideas they have now. It really depends on what product you prefer to work on, and what companies are using in your area.

    Regarding the future of Windows... it's a lock for desktop and front-facing enterprise for many, many eons to come. People can't even forecast a potential contender. The only way you can dream up failure is if somehow these target markets themselves disappeared. Of course this is important only in the sense that you'd be writing programs for desktops and the like. Software is such a huge segment out there, and desktop is only a small part. So don't lose sight of the whole picture.

    And as for your opinion of Windows: it's your opinion. Nobody can tell you that what works best for you isn't good enough for you. It's your judgment call and you should have all the confidence in it. Windows has some wonky quirks but so do Linux and OS X. When it comes to software development and other such things, I really struggle without a command line, so working on Windows had always been difficult for me. On the contrary, I know many who swear up and down by Visual Studio and wouldn't touch a line of code without it. But all in all, I think it's important for a software developer to not be too dogmatic about it. Respect the strengths of each OS and be open to developing for each one if such a need arises in the future. I don't use Windows for much other than gaming at this point, but if someone's going to stuff cash in my wallet to make a program that runs on that platform...? I'm listening.

    After developing software for awhile you can become quite flexible with both language and platform and move around fairly easily if necessary. It's all going to depend on where the job focus is at any point in time, and it's hard to predict the future. But I am noticing a greater need for mobile software and things that are web-based (either fancy-pants web sites or server software).

    Leave a comment:


  • ninez
    replied
    I will just say a few things on this;

    first, when you asked 'if it was wrong to like MS software' - i burst out laughing. It's such a silly non-question.... it's sort of like sitting in your backyard, building a fence ~ looking at your hammer and asking - is it okay to like hammers? (as you use the hammer to pound down nails). Software / OSes are tools, if you like MS and their tools work best for you - then those are probably the tools that you should be using.

    that being said, as others have pointed out - you may not want to 'put all over your eggs in one basket', as that could hurt you in the future. ~ you will be a 'windows only developer' and be entirely dependent on MS for your future. (which may be okay, but what if it's not?) --> For example; i have an older friend who works on oil appliances (he's a technician), when he was in school (years ago) he could have easily gotten his gas-fitting license too, but did not because at the time and even for years after, Oil was still very popular - however, that is no longer the case and for the last 5years. he has been slowly watching his customers/business disappear. - all because he bet on 1 technology, rather than also being trained in competing technologies...

    You also won't be developing anything cross-platform (since we know how portable MS APIs are...lol), which you may or may not see as a problem, but it _could_ become one in the future. it would seem to me, that you are betting everything on Microsoft. - So i have to ask;

    - do you see MS gaining or losing Desktop market share over the next 20 years?
    - do think it is at all possible that MS tablets/mobile devices will become popular in the next bunch of years?

    ...if you see MS losing Market share over the next 20years, then you would be a fool to invest solely in their technology. If you don't see MS being able to 'win' the tablet/mobile market that you are also likely a fool to invest solely in their technology.

    Myself, i think it would probably be smarter to position yourself, as being able to use any tool in the toolbox - or at least (at a minimum) more than just one hammer. For example, one of the companies that i work for ~ would not hire an MS only guy.

    just my 2 cents.

    Leave a comment:


  • artivision
    replied
    Originally posted by Sonadow View Post
    I have played around with quite a fair bit of proprietary and FOSS solutions and I still find the MS camp to have better software.

    Again, anecdotal examples: for database class back in my campus we were given a choice of postgreSQL, MySQL, Oracle and MS Sql Sever to use for our projects, and the course instructor personally recommended MySQL. Bear in mind this is was class of computing newbies who have never touched database management before.

    When the projects were submitted and graded he asked us why everybody (even the OS X users) ended up choosing SQL Server even though MySQL was the recommended option. The answers:

    1) MySQL feels primitive
    2) WorkBench cannot compete with SQL Management Studio

    Being the only guy on Linux back then I didn't have the chance to try out SQL Server, but having done so recently I can fully see where my coursemates were coming from. People can speak for themselves, you know. Microsoft didn't even have to tout its software; the class made the decision on their own.

    What I did like about MySQL though was that I could get lazy with defining CONSTRAINTS. Since MySQL automatically ignores CHECK statements I can purposely choose to ignore any instruction that requires a CHECK statement be set as an attribute or as a table level constraint.


    My friend, you are somehow wrong. First of all, there is not an excuse to not do the right thing. Open Source is the right thing for all of as and so it has advantages, that they usually start from 30 times less errors in the code, they continue with security because you have the source and you can correct the wrong or enforce policy, and they don't end, as more people using it as better the quality is. The right thing (libre source) its the only thing that can give right and for this reason has its own powers. First spreads like bug, as today 60-70% of the devices sold are small (phones and tablets), and an 70%+ of them has Linux. So you can say for sure that 2015 50%+ of the computers will have Linux, Android will become more real (probably LLVM based and not a Java toy), and those small computers will be powerful. Second when users start using Open Source, eventually they will understand its philosophy and they will have anger against monopolies. So thats why you chose open standards, because you don't want to be chained with a single company that may fall or reduce share, and because you want to have profits from every one and not to have to face many against you. Now, if you can offer something back, that will be great for you to, so if you make a sound program, give for free some code and standards, so tomorrow OpenSound will have better quality mechanical sounds instead of useless waves. If you make a game, when its time is up, give it for free, it will be appreciated. Any way you must think many instruction_sets (C11 + LLVM), many OSs (OpenGL, native Linux clients). That is the only good code. Ending, if you just want to work somewhere, because the world is changing, those open_standards abilities are wanted 10x.
    Last edited by artivision; 04-25-2013, 04:46 PM.

    Leave a comment:


  • nightmarex
    replied
    Originally posted by Sonadow View Post
    I have been using Microsoft software since I was old enough to touch a computer. That was during the Windows 3.1 days where Windows was just a GUI layer for DOS.
    When Windows first appeared I liked Winfile (this maybe 95 can't remember but I think it was there 3.1). This I liked. Until I didn't. I know it sounds stupid but when we had less things on our disk a gui explorer was so nice and quick, no typing. Now I use command line again just because of the volume it too hard to search visually lol.

    Dude if you like M$ you do, don't worry about it, people like to fuck farm animals as well... lol sorry had to. I miss Windows 2k that was M$ really shining, brave new direction that most companies didn't back at the time (drivers were scarce) it was lean mean and clean and did what it needed to.

    If you make programs and stuff use the platform you're comfortable with I mean, wtf are we using computers for?

    Leave a comment:


  • Sonadow
    replied
    Originally posted by brosis View Post
    You're missing one point: You can't ask opinion on how fine the sausage tastes - when you clearly know its made of spoiled meat.. But maybe you can,.. I don't know. I will repost when I find something positive...
    Im not fishing for positive comments. I asked, very clearly, for opinions about taking up MS technologies as a career move, and opinions about whether it is wrong to like Microsoft's software. and both archibald + curaga were very clear that there is nothing inherently wrong in preferring MS software to get work done if i genuinely enjoy using them, and that casting my entire lot into MS technologies is generally a bad idea. Which is very sound advice. archibald even suggested looking into learning Qt alongside .NET, which I am giving some thought to.

    If someone comes in and claims that it is a bad move and gives valid reasons such as "you should not pick up so-and-so because Microsoft is deprecating this framework" or "you should not learn this because it is not deployed on a large scale / being phased out for something else" I will definitely take them into account. I have no reason not to since it concerns my career. And "you should not do this because I think Microsoft is a scumbug" is not a valid reason by any stretch.

    All you did was rant about MS being a scumbug and that people who associate themselves with anything MS are scumbugs too. Last I checked 'scumbug' is not a listed career development route in the field of computing.

    This discussion is over.
    Last edited by Sonadow; 04-25-2013, 03:54 PM.

    Leave a comment:

Working...
X