Microsoft staying relevent

August 5, 2010 at 12:24 pm (.Net, Apple, Free Software, Google, Linux, Mac, Microsoft, Opensource, Personal, Programming, Python, Rant, Ruby, Ruby on Rails, Technology, Web2.0)

Update: As the Ruby Inside blog points out maybe Microsoft thinks they need to revert back to their old ideas

Lately as I’ve been learning Ruby I’ve noticed some frustrating hurdles that are becoming all too familiar.

Now I know  Microsoft has taken steps to embrace the “other” world of web programmers but as I’ll show, I believe the wrong steps.

As the Ruby and Python web frameworks grew and also the community that insisted on developing web applications in a way that kept them in control of the HTML,CSS etc. Microsoft noticed and responded with the ASP.Net MVC releases. Their also were Windows programmers working on Iron Ruby, Iron Python etc.

This strategy while seemingly plugging the whole in the boat in my opinion is only delaying the inevitable shift developers are making to the “dark side”. Whether Microsoft or anyone else wants to admit it the threat from Mac OS X, Linux, Ruby, Python etc has much more in common then is admitted from the Microsoft camp.

For starters as I’ve said in other blog posts, a great deal of the Mac OS X shift by Windows developers and to be fair even Linux developers has more to do with the tools then it does to do with the pretty beach ball spinny thing ( ie. the pretty things). The Linux shift has more to do with instability at times on the Linux platform but that may be worked out if Ubuntu stays focused on the important things.

Not only do I believe Windows could slow the shift by their current developers but they could also possibly gain some of them back. Rather then try to force everything through the .Net filter they need to do the obvious. Give them what they are looking for.

1.How about a native Bash or Zsh environment. Environment being the key word. There are some applications running natively but far from a complete environment. An even so much of this has to be scraped together from evry corner of the web.

Developers now hanging on by a thread to the Windows platform have to jump through all kinds of hoops to use Windows. There is the Cygwin setup that breaks every time Windows upgrades. Although I must say the Cygwin developers have done a good job keeping things in order. I know Microsoft hates to admit it but .Net and C# isn’t for everyone. Stop thinking everyone wants a .Net implementation of every tool or language there is.

2.Embrace what the developers want to use rather then what Microsoft thinks they should use.

This doesn’t mean Microsoft is giving up on what they see as the future of programming. There are plenty of developers that still use those tools and will continue to stay the .Net path.

3.Embrace the commandline, the classic commandline. There are many developers and sysadmins who have tried to wrap their heads around Poweshell. The object oriented shell isn’t what some want to use. Again there are some who think that way but there are also those who wonder what the hell was Microsoft thinking. When the sysadmins and developers were begging for a better commandline story on Windows I’ll be willing to bet Powershell isn’t what they were thinking. The problem with Microsoft and these technologies is that they spend so much money and time on these technologies before the users get to see them that is more or less stuck with where they’ve gone.

If none of this strikes a note with Microsoft people then maybe we need to just admit that there are droves of developers who just need to keep switching.

There are developers that are holding on by a thread, believing that they can possibly stay on Windows but that thread is getting thin. Try setting up a native Django, or Rails development environment on Windows and see how long before your installing Cygwin, creating symlinks and such to make their environment “feel” native.

I would venture to say with all the free and opensource software that already exists having this happen would be more of pulling these tools together then remaking everything from scratch.

This would give Microsoft a much better story in their competition with Google and web applications in general. How much better off would they be covering much broader of a base of developers then they currently do. Who knows Microsoft could even innovate in this space and shock everyone. I know the resources are there but the will is at this time.

How would they like to see all the old school hackers that even work for Microsoft to stop buying Macs and using Macs to program for Microsoft. When the .Net Emacs project starting getting leaked to the world I truly believed that someone at least got part of the problem. But developers don’t want .Net everything. Microsoft could embrace what developers want even more then Apple and in my opinion shift the tide

P.S. Maybe you’ll listen, maybe you won’t, but at least I tried to articulate a few things that would make Windows seem like a platform I could even think of continuing to use.

As always just my two cents.

Thanks

Joe Ryan

Permalink Leave a Comment

Ruby !

July 30, 2010 at 8:14 am (Cloud Computing, Computer Science, Free Software, Opensource, Programming, Python, Ruby, Ruby on Rails, Technology, Web2.0) (, , , , , )

Update: I wanted to mention that I have thoroughly overstated the situation as far as Rails apps seemingly being used more by “real sites”. I noticed a Django developer doing some awesome work on some Discovery websites and a few others. I guess it’s just me hoping that it was Python and not me. Well I guess it is me. I ‘ll keep leaning on my noob status until I can hopefully no longer use that crutch. Thanks to Derek the Python/Django guy who made me take a second look.

It amazes me that the most english-like programming language in the world was built by someone who is not a native english speaker. Maybe the simplicity comes from his inability at the time to be overly verbose, using only statements and such that best communicated an idea to someone with a very basic english vocabulary. I think since Matz has become pretty fluent in the english language though.

One other thing I would like to note. I remember a talk that DHH the creator of Rails gave along with Adrian Holavity, one of the Django creators. DHH ekpt saying that he felt some of the architectural decisions behind Django were better suited to we sites where in his mind Rails ‘ architecure was better suited to web apps. At the time I took as a somewhat snide remark, thinking listen to this saying that Django was for building simple web pages and Rails was for building “real” web apps. Well if you take a look on the web now I think the statement rings true, there seems to be many more complicated, detailed Rails apps compared to Django’s hundreds of sites that seem rather simplistic in the app side of the functionality. Just an observation. What do you think?

Permalink 5 Comments

I want to learn programming very badly!

July 5, 2010 at 11:01 am (Computer Science, Free Software, Google, Linux, nonEvil, Open Web, Opensource, Personal, Programming, Python, Technology)

So badly that I am offering any hacker out there my volunteer time in helping with any programming related task. Just comment to me if you are interested. No matter how tedious the task let me help and possibly become a part of the project involved if it works out.

I have free time, but unfortunately because I have been diagnosed with Scleroderma. Which seems to make my dream of being a hacking Ninja a bit more urgent.

I figured I would throw this out there although I haven’t got much traffic to my blog yet. Hopefully the Google picks it up (ha ha).

Permalink Leave a Comment

Understanding the purpose of programming!

June 2, 2010 at 3:46 pm (C, Computer Science, Opensource, Programming, Python, Technology)

After my year or two of trying to move forward in my new found passion to code I have come to understand some of the deep issues facing programmers and the future of programming in general.

I watched I video of a talk given by a programmer from the game maker EA, in which the gentleman was talking about performance and such issues as the multi-core future. The talk was A Game Developers Perspective on Parallelism. I was somewhat taken back by the conclusions that he came to when having to optimize code for maximum speed and efficiency. As I try to learn to hone my skills and understanding on my own I jump back and forth from where my interests lie be it low-level (perspectively speaking) C or higher level Python. Basically his conclusions spoke volumes for what we tend to see as efficient code. When we try to think through our looping and execution schemes in coding to get the most out of the code the code tends to do just the opposite. I know coders are discouraged from magic in their code for understanding purposes and such but as much as this lends to understood code (for the human) it doesn’t lend itself to ultimate precision in performance (which I’m sure most programmers already know understand to an extent). We have to find the sweet spot though because as much as processing power use to be cheap in terms of cost that reality has only all but caught up with us and will probably start to edge us out of the lead soon.

We do not think in terms of the mechanics of precision when it comes to giving the machine the most performant way of executing a program I think we will ultimately need to move at programming at a higher level for our purposes but for the machine’s ultimate efficiency we need to find a way to let our machines generate the low level code that it will ultimately find efficient. I know it is easier said then done but we already have interpreters and compilers that are generating code to run at a lower level or from interpreted to complied etc.

The most expressive languages for humans to me are the functional languages ie Lisp Scheme etc. If we can figure out a way for humans to communicate at their level with highly readable code and algorithms then let an interpreter of sorts spit out performant optimized at times spaghetti C code I think that is where that sweet spot will ultimately be met.

I know that we want to be real men and code close to the metal and I seem to be most interested in that level in my learning but it seems not to be our best way to bridge the human/machine gap.

Please understand I’m learning so be nice when you judge my expressing of some of my understanding.

As always just my two cents worth.

Permalink Leave a Comment