Microsoft Begins Its Way to Oslo
|
Podcast. The destination isn't a city but a way of developing products through modeling. |
Last week, during Microsoft's Professional Developer Conference, Burley Kawasaki, director of product management for Microsoft's Connected Systems division, agreed to do a brief video podcast about Oslo, codename for forthcoming modeling technology for software developers. Burley gives a refreshingly clear overview of Oslo. If you're wondering what the heck is modeling, watch this video.
How Do You Get to Oslo? from Watch Tips on Vimeo.
Another version of this video appeared on eWEEK.com last week, but I'm reposting here recognizing that not all readers go to both sites (Oh, the pain!) This is the editor's/director's cut, with my fumbling intro restored in its wondrous, embarrassing glory.
[Please send your tips or rumors to watchtips at live.com].


Comments (26)
I think that the lack of comments show the level of interest in ANOTHER MS scheme. To be honest, its hard to keep up with them all these days.
-
I think the fact that nobody has made a comment says alot about this particular "innovation"
-
Maybe Im wrong, and people are waiting with baited breath.
-
Somehow I dont think so.
Posted by Goblin | November 8, 2008 2:53 PM
You are most definitely wrong.
The reason people don't comment is because:
1. They are ignorant
2. They are fearful
3. They know
Oslo is the face of a new very high level paradigm that will wipe the world clean of programmers just as surely as the procedural languages erased the need for assembler languages.
The model IS the application and declarative languages will put in the hands of subject matter experts the ability to build applications custom tailored for the disciplines and clients served by those SMEs.
"Programmers"; the workers the software industry and the cultures at large have come to know as indispensable to modern advancement, have been expensive middlefolk between the SME knowledge pool and the means to functionally express that knowledge.
The model-is-the-application will be presented to SME communities in a living-software ecology ("ecosystem" for the purists) who will all have immediate and ubiquitous contact with the model on a very intimate level. That contact brings about a revolution in productivity and true functional efficiency that will bring the computer's facility into the lives of the common man in a way never before imagined.
Those who know, fear and they feign ignorance. It's a malady called denial. There is no cure but reality.
Posted by portuno_diamo | November 8, 2008 9:34 PM
@Portuno.
-
You know, many of your patent related posts I cannot comment on (although that is slowly changing through a little research)
-
I have found myself though recently, thinking that some of your comments instead of being mad ramblings are actually quite reasonable and based on something more than just wild supposition.
-
Im not sure if you are a coder, but in respect of
"erased the need for assembler languages" you have hit upon something (again) I think there was a time (and Im not quite sure when) when the need for a low-level language was removed, due to the specs of the "average" machine and high level languages offering the advanced system access that in the past could only be achieved through asm.
-
I think people are fearful about many of MS's adventures, but they still create posts in respect of that fear. I think this thread is more to do with people not knowing/not understanding or simply not caring.
-
Anyway back onto topic with Oslo, ive been reading about the no-code-name Schema Language, and whilst to be honest Portuno, I think this is one of MS better adventures, its success is really based on the success of other MS schemes working. Let me explain. I know business likes to think it dictates the packages people use, truth is they dont. Certainly for the up and coming IT worker, they use a package at home, expect to use it at school, carry it on to uni and then get a job with it. The difference now is that when you ask people to list the packages they use, you dont get the usual MS only list.
It is no longer classed as "unique" to be using MacOS unstead of Windows.
-
I think it was you that mentioned that MS would be better splitting into smaller units, and that I believe you are correct in. We can argue about whats a better platform all day, but the reality is, MS is losing customers to alternatives, and the best idea in the world means nothing, if, for whatever reason people have migrated away from MS.
-
In my opinion Oslo is a great idea in theory, MS will have to sell it well though and show that its a viable model for people to use. With MS reputation at the moment, I dont believe it will be easy, and even harder, when if as you suggest (and I believe) that most people just dont even know what it is.
-
Would it be so outragous to suggest that MS put their efforts into getting one product the best it can be, rather than being jack of all trades master of none.?
-
Portuno, if I could also give an example. ".Net" still causes people confusion today and MS praise it like its the second messiah. Truth is from my experience, I mostly use a command line compiler with no dev-environment (and swear by Gedit when working at home), as the people I am working for require nothing more than code repair / optimization. - Oslo is nothing more than an interesting subject, and somehow I believe that in a years time, we'll be asking "does anyone know what happened to Oslo?"
Posted by Goblin | November 9, 2008 5:48 AM
The invention of low level languages did not stop assembler being used, just like the introduction of high level languages did not make low level languages obsolete.
There is a right tool for every job, non-programmers can make 'programs' now via macros and other basic languages. The impression I get every time with these tools is that non-programmers do not want to make programs, they would rather someone else do it for them properly so they can just get on with their job.
Not to mention the awful scalability and quality you find in apps written by non-programmers...
I predict this will create more work for programmers, fixing the apps once they become critical to the business and have outgrown themselves.
We have been using domain specific languages and model based programming for years and years, there is nothing new or revolutionary.
Call me when a PHB fresh out of business school can write a content management application from scratch... Actually call me when they can manage to maintain their own PC's without breaking them. Maybe then I will start to worry about my job.
Posted by billybob | November 9, 2008 1:58 PM
@Billybob
Valid points, and maybe stop was a bad choice of words. I think the many highlevel languages removed some of the need of low-level languages. In a world of fast food and fast code, and the fact that even in a highlevel language you dont have to worry too much about specs or eeking out every bit of performance out of your cpu with tight asm.
-
There are so many devkits/sdk's out there that people, rightly or wrongly are using them. I think that there are not many areas of computing where code is taken entirely from scratch, and perhaps the ethos of open source has contributed to the move to reuse others code rather than develop it by themselves, and thats no bad thing IMO. I will admit to being an OGRE user for certain hobby projects, as I want my code out and out quick.
-
This whole subject of development is something that I think MS has been good with in the past. I refer to dev on the Xbox 360 which I have at work (in my lunch break) played about with. I dont think I need to say that Im not a MS fan, however I have been impressed with the simplicity to develop on for that particular platform. (remembering back to the days of the SNES where you needed a dedicated dev-console) Where MS loses this respect from me is that fact that if I want to distribute my work over Live arcade for free, I have to pay MS to do it. Thats the spirit of MS IMO"you can do everything....for a price" and why I advocate the alternatives.
-
The comment you made "Call me when a PHB fresh out of business school can write a content management application from scratch... Actually call me when they can manage to maintain their own PC's without breaking them. Maybe then I will start to worry about my job."
-
I agree and certainly dont think it will be the revolutionary tool MS say it will. I just believe its one of MS's more interesting Schemas (pun intended)
Posted by Goblin | November 9, 2008 2:54 PM
The part which Microsoft talks about being used by non-programmers is the visual design tool "Quadrant". I haven't had a look at it, but it sounds an awful lot like UML, except 10 years late. The other parts are a new SQL-like language for accessing non-SQL data and a ORM. We have had ORM's and database abstraction for years and years.
I will leave you with this gem from Microsoft...
"Modeling as a technique is not new, either to the non-software world or to software products and platforms. Previous modeling approaches in software design and development were, for a number of reasons, less successful than anticipated. Some more recent modeling approaches have had more success, such as the Unified Modeling Languageā¢, but are sufficiently platform-agnostic that they cannot take advantage of specific platforms and their possible optimizations or address very specialized fields of knowledge."
Its VB6 and ActiveX lockin updated for the 21st Century and the cloud. This time with a subscription model!
P.S. Joe - Please fix your CSS for comments, paragraphs need a bit of padding for readability. Also your site is broken on the iPhone.
Posted by billybob | November 10, 2008 9:58 AM
@billybob
As much as I dislike MSFT and their past ways, I would caution you against being blinded by presumptions and prejudice. Do some investigating before you dismiss or you will be one of the many caught completely by surprise.
What's happening is not a Microsoft phenomenon. They are simply the most recently vocal because they now are able to speak openly. Before, their lawyers had them shut up tight.
Look at what is being talked about in the industry before you wave off what appears on the horizon or you will be standing in the open when the monsters are upon your industry.
READ:
The Coming Creativity Boom
George Gilder -- Forbes, November 10, 2008
--------------
@Goblin
I will respond to your points once I can edit what I've already written. It's a large subject and I'm wordy by nature.
You definitely are correct about the drive for shifts in languages and that is the key to viewing the landscape of today and the near future.
Hardware changes quickly because it must.
Software only changes quickly when it must.
Software is changing quickly. Whether MSFT's stuff is successful or not is beside the point. The fact stands out that MSFT is changing. Their product line. That means something big that's easily overlooked because it's never happened this quickly before.
The software industry is being seen to change today. But, the software industry has been changing drastically since three years ago while MSFT tried to stand still as usual.
Suffice to say Microsoft would not be going the direction they are moving unless they were being chased by some very large predators.
Change comes because productivity appears. Industry doesn't abide crooks and cheaters long and Microsoft has been one for the better part of 10 years now. They either will reform their ways or they will be eaten.
Posted by portuno_diamo | November 10, 2008 10:32 AM
Additionally (see, I can't say anything in only a few words) UML is last generation modeling.
JetBrain, the new JAVA IDE, touts a "UML-like" language. When you say "like" you admit you've thrown in the towel. When you say "like" and tag it to the end of a last-generation anything, you telegraph you've been sitting on your ass while others around you out-stepped in execution.
The model-is-the-application era will take programming out of the hands of middlefolk and put it in the hands of subject matter experts.
If this were not so, you would not be seeing Microsoft running in that direction and, if this were not already a done deal, you would not see Microsoft moving so fast to adopt.
Posted by portuno_diamo | November 10, 2008 10:37 AM
"What's happening is not a Microsoft phenomenon."
Are you talking about this cloud thing again? Oslo is not directly related to the Cloud.
"The model-is-the-application era will take programming out of the hands of middlefolk and put it in the hands of subject matter experts."
I hear this once every 5 years at least... I have never seen any example of how this is actually going to happen. The basic fundamental problem is that programming computers is something that takes years of practice, and most non-programmers do not want to program anything. Just like they could fix their own pluming, but normally businesses hire in experts for that sort of thing.
Middlefolk... I love that phrase! I will use it more often in future... eg. "I want to build my own house, but the Middlefolk are too expensive so I'll just architect and build it in my own spare time!"
Posted by billybob | November 10, 2008 10:46 AM
@ billybob,
"Oslo is not directly related to the Cloud."
Why would Microsoft be pursuing it if it had nothing to do with the cloud?
Oslo (whether it is pulled off correctly or not) has to do with a developer platform/community in the cloud to build applications on the cloud.
Think before you speak. Your prejudice is showing.
The fact that you've heard something like this the past couple 5 year periods should alert you to the fact that all new ideas go through stages: concept discussion, proof-of-concept, prototype, and maturity.
When do you expect this era to come to maturity? AFTER Microsoft is in? You would be the first to say Microsoft is a follower and not a leader. Yet, here you're saying Microsoft is in here before the era is ready to start.
Make up your mind. Your prejudice is showing.
" programming computers is something that takes years of practice, and most non-programmers do not want to program anything"
That's what the mainframe guys told IBM while Microsoft was building and marketing Basic. The adoption rate swamped IBM and they looked like fools. The future is coming to wipe that silly smirk off your face and you'll be left looking for a job.
"I'll just architect and build it in my own spare time!"
Isn't that what the cloud is telling business owners they will be able to do? Are you so blinded by "it'll never happen" that you can't even smell it happening right in front of you?
Ignorance, fear, knowledge.
Some do it one way, others do it backwards.
Wake up, billybob. There are many like you and they're all going to suffer the same fate. They'll still be bitter and jilted years from now because they simply refuse to accept reality.
Just a friendly warning.
It's the only time I'm friendly.
Posted by portuno_diamo | November 10, 2008 11:14 AM
"Why would Microsoft be pursuing it if it had nothing to do with the cloud?"
I said, 'not directly related to', not 'nothing to do with' read before you open your mouth next time. I chose the words fairly carefully, the least you can do is read them properly.
"The fact that you've heard something like this the past couple 5 year periods should alert you to the fact that all new ideas go through stages: concept discussion, proof-of-concept, prototype, and maturity."
We have been hearing the same about the flying car too... Its not feasible either (not in my lifetime anyway). What stage are we at now? Maturity?
"Wake up, billybob. There are many like you and they're all going to suffer the same fate. They'll still be bitter and jilted years from now because they simply refuse to accept reality."
At least throw me a few sheckles as you fly by in your car! I'll be the one with the 'will code for food' sign. Please send me a link to your first cloud application, if I can still afford the internet connection, I'll have a look.
Posted by billybob | November 10, 2008 11:48 AM
Hey, portuno... Do not fear anymore, I have the perfect plan to save my future...
I am going to learn Oslo and use it to write a cloud service. Its going to have speech recognition and true AI. If we can dream it, we can build it!
Next I will use that to write a new cloud that we never dreamed of, it will write a service based on the brain scan of the user. Then everyone can be scanned for all useful information and then discarded. Getting rid of programmers is just the start, we can get rid of Doctors, Lawyers (thats the best part), Teachers etc etc.
This new cloud will absorb all cloud information and information from the brain scans and collectively use that to rid the world of all intelligent humans. Fairly shortly all that will be left is me and any other people clever enough to get on the Oslo bandwagon early enough... Who will be laughing then? Me and you - thats who ;)
Please do not be too unfriendly, its just a concept discussion. I am sure someone unjaded can help flesh it out. Maybe I'll ask my cleaner...
Posted by billybob | November 10, 2008 12:00 PM
@ billybob
Sarcasm doesn't demonstrate intelligence.
In fact, sarcasm betrays a nervous and insecure laugh.
Laugh all you want.
Posted by portuno_diamo | November 10, 2008 1:57 PM
Firstly if this is going off topic, I appologise, but some of the subjects stemming from this are very interesting to me.
I think its no secret that mine and portuno's previous posting have not agreed on occasion. However I do believe he is speaking from a more informed position than we give him credit for.
-
Certainly in respect of the "maturing" or evolving of development it goes without saying that change is coming, looking just briefly at the sheer number of development kits/languages etc that are aimed at the novice or average person proves that.
-
As a coder, I believe I am allowed to say this, but I think there has long been a god complex amongst us. We looked down our noses at people who "couldnt do it" and baffled them with fancy terminology and l337 slang (and infact I am guilty of this and on this site!). I saw the fear myself during the days of the Amiga. AMOS was released, and all of a sudden everyone was creating software and we hated it!
-
Moving onto modern day, talk to any C++/asm coder about DBpro and/or Blitz and you are met with the same smugness. I think for far too long coders/developers have been able to hold anyone to ransom, because "we can and you cant" This is not only true in the business world, but also for the hobbyist coder aswell.
-
Another example of change not being anticipated was in the early 90's. I was quite happy accessing BBS's on a 14k modem, and when the NET started to be mentioned, I never believed that it would ever take off, I thought we would be using dialup BBS's forever. - Was I wrong! (I know its not a good example, but it was just as big at the time)
-
Heres another example, who codes their gfx routines from scratch? Who uses OGRE or similar? What is the point in re-writing old code (or indeed optimizing) when todays CPU is so damn powerful. That type of coding was more relevant in the days of 16bit processors and 512k ram.
-
I do think this is coming, in some form or another, I cant predict when, nor how or by who, but Portuno is (IMO) correct in his predictions, and I think its proved by the popularity of high-level dev tools today. I think this also comes from the fast food culture we live in, people want to do it immediately and with as little fuss as possible.
-
Will MS be at the forefront for a new generation dev platform? I really hope not. But if it is, fair enough and we'll adapt, and in 20 years time be arguing over the next innovation to be released.
Posted by Goblin | November 10, 2008 5:03 PM
@ Goblin
Sorry this is so long (Screw editing. Learn to speed read.) and I'm sure I rambled far off point so pick and choose what you would like to discuss.
>>"Im not sure if you are a coder">"erased the need for assembler languages"... there was a time (and Im not quite sure when) when the need for a low-level language was removed, due to the specs of the "average" machine and high level languages offering the advanced system access that in the past could only be achieved through asm.>"I think this thread is more to do with people not knowing/not understanding or simply not caring.">"back onto topic with Oslo, ive been reading about the no-code-name Schema Language, and whilst to be honest Portuno, I think this is one of MS better adventures, its success is really based on the success of other MS schemes working.">"Let me explain. I know business likes to think it dictates the packages people use, truth is they dont. Certainly for the up and coming IT worker, they use a package at home, expect to use it at school, carry it on to uni and then get a job with it. The difference now is that when you ask people to list the packages they use, you dont get the usual MS only list. It is no longer classed as "unique" to be using MacOS unstead of Windows.">"...MS would be better splitting into smaller units...reality is, MS is losing customers to alternatives, and the best idea in the world means nothing, if, for whatever reason people have migrated away from MS.">"In my opinion Oslo is a great idea in theory, MS will have to sell it well though and show that its a viable model for people to use.">"With MS reputation at the moment, I dont believe it will be easy, and even harder, when if as you suggest (and I believe) that most people just dont even know what it is.">"Would it be so outragous to suggest that MS put their efforts into getting one product the best it can be, rather than being jack of all trades master of none.?">"...if I could also give an example. ".Net" still causes people confusion today and MS praise it like its the second messiah. Truth is from my experience, I mostly use a command line compiler with no dev-environment (and swear by Gedit when working at home), as the people I am working for require nothing more than code repair / optimization.">"Oslo is nothing more than an interesting subject, and somehow I believe that in a years time, we'll be asking "does anyone know what happened to Oslo?""<<
Agreed if Microsoft can not make Oslo relevant by producing serious output immediately. If they can, they will win over their entire development base into a solid community. If not, Oslo will be the beginning of the end of Microsoft as a unified company.
MSFT are in a race against those companies that have had access (whether as an evaluation version or as a nod and a wink) to 744/521 claims and those companies have been using the years since MSFT delayed Vista (in fact, since MSFT castrated Longhorn) to build on those concepts and garner clients and marketshare.
I believe all players have been held in a starting gate to prevent charges of unfair competition being used in court to hobble the advance into the new age once it begins in earnest.
I think what we're seeing with Verizon being courted by Google and Microsoft is an indication the starting gate is about to open. A telco can provide a command line by voice... no need for a keyboard. That's the equalizer capable of rendering Microsoft and Google pointless to the average user.
Whether there are enough "power users" out there to justify $1000 laptops and "towers" is a huge question that will be answered quickly. I think the industry has already answered that question in their own evaluations. We, the public, are behind the learning curve. Microsoft would normally drag litigants through the court brambles. They settled with Eols when they had a chance to beat the crap out of that little company. They settled with VCSY the day before a Markman Hearing.
Those are indications the realities of the world have finally broken the clutch on Ballmer's chicken-mobile.
***
Footnote:
For those about to launch on me for slandering your favorite procedural language, save your effort. I'm deaf to your arguments. Since PL/I your C's and +'s and #'s and all that other class of beans and bull$#!@ have turned out only self-interested manipulation of the programming concept - not advancement.
I don't care to get into arguments about which language did better than what. That's not the subject.
The important discussion will determine which language can bring increased abstraction to the SME, not the expert "programmer". Computers are here to make the SME's job more productive - not to give coders jobs.
I know that's a rude shock. It's like a butler realizing he's been left alone in the mansion. He can live there, yes, but, he'll never own the furniture. It's not his food in the fridge.
Building program languages for programmers' sake is the main problem with the commercial lock-in of the past twenty years and I blame Microsoft for that.
If your favorite language was truly extensible, you wouldn't be doing the "programming". The subject matter experts would be using your product and you would no longer be needed.
How many of you have worked yourself out of a programming job?
Ultimate answer? All of you.
PS - "Will MS be at the forefront for a new generation dev platform?" I would rather see Adobe there because I don't think Microsoft knows what they're doing on the web and this isn't the place for learning out loud. At the same time, Microsoft would bring the concept to the most people at once, so the maturing will go quickly. Gee. I guess I'm conflicted. Plus, there's money in it.
Posted by portuno_diamo | November 10, 2008 9:26 PM
Could you guys please give a rough timeframe for when we are all out of jobs? Its all good to predict the end of the world when you don't have to give a date.
Posted by billybob | November 11, 2008 7:03 AM
Im not predicting the end of the coders world. I just think that the evolution of the development platform is changing. Like I say, how, when and by whom I dont know, but the "spirit" of change is coming. It wont happen overnight, and I think it will be a steady migration, evidenced already in the way coders/developers er develop.
-
Dont get me wrong, in my ideal world we would all be using Linux, the C++ coders would be the elite, and the rest of the "lamers", would gasp in childlike bewilderment at the amazing things coders were achieving. Hell, Id go back to the A500 today in my ideal world. I am not someone who embraces change very easily but the issues discussed here are bigger than any of us.
-
Unfortunately my ideal world wont happen (IMO), and this migration away from traditional design concepts is as apparent to me as the rumblings about Vista. But hey if it doesnt, great! and if it does jobs will change, new oportunities will arise and in a few years from now people will be saying "what was the fuss all about". I dont think it will be the end of anyones world, more of a change in "government"
-
Great discussion by the way.
Regards.
Posted by Goblin | November 11, 2008 8:17 AM
The problem with your theory is that Low level != hard and High level != easy.
Languages these days and the libraries which sit on top of them are actually vastly more complex than C or assembler. The difference is just the proximity to the hardware, higher level languages should in theory bring more portability and power to the basic language, they do not make things easier. eg. In C you do not have to understand what an object, a method, a static or abstract class. Namespaces are just function prefixes in C.
Nothing about new languages stops you having to think about all the basic programming fundamentals like modularisation, encapsulation etc.
Please do not try to make it out like there are lamers and leet, their are experienced programmers who have spend years refining the skills so that programs work well, scale and are extendable. I have seen many programs which were written by beginner coders which have many many basic errors which mean that the code is very hard to work on. I have written lots of it myself (and I an still learning).
In my experience, clients have a very general overview of what they want from a computer system, but they do not know the details. A lot of industries work on fuzzy logic that cannot be easily explained to another person, let alone a computer.
In order for non-programmers to be able to write complex programs, the program would have to encapsulate years of programming knowledge, then have a better than human understanding of human speech. I just cannot see this happening in the near future, it would require very strong AI.
What we are seeing with Oslo is just an ORM and an entity modeller, the difference this time appears to be that it is Windows only. Just look at the examples, they are code, just not any that we know now. Please, anyone who is not a programmer and feels that this is the way to rid the world of programmers, please download the SDK and write something to prove this proof of concept.
Plenty of non-system administrators install their own blogs, webservers and forums. The spam industry thanks them a lot. Just because they can do it does not mean they should or it will result in the same quality result.
Programmers are very lazy and if there were anything that made it so we did not need to learn all the time, we would be right on top of it. There is always money to be made, and if we could produce complex systems without having to think, I know I would be interested in a career change. I do not think more libraries and visual design tools are going to make thinking obsolete.
Posted by billybob | November 11, 2008 9:30 AM
"The problem with your theory is that Low level != hard and High level != easy."
-
Thats not what message I meant. Its certainly what alot of coders (in particular net and hobbyist ones) would like to portray.
-
"Please do not try to make it out like there are lamers and leet,"
- Im not, if you read my post you will again see that I am saying this is a stereotype which was instigated many years ago by low level coders, not relevant in business, but certainly on the net (rightly or wrongly)
-
"Programmers are very lazy and if there were anything that made it so we did not need to learn all the time, we would be right on top of it."
-
Exactly what I said. Completely agree.
-
"Please, anyone who is not a programmer and feels that this is the way to rid the world of programmers, please download the SDK and write something to prove this proof of concept."
-
I dont believe this will rid the world of programmers, but I think Portuno is 100% correct in his view that the way development of the future will happen is changing.
-
"In order for non-programmers to be able to write complex programs, the program would have to encapsulate years of programming knowledge, then have a better than human understanding of human speech. I just cannot see this happening in the near future, it would require very strong AI."
-
Very true, but until this new concept is fully released or atleast theorized, we dont know what limitations it will have/need. I dont think anyone is suggesting that in the near future we will be "telling" a PC what type of program we require. But just as the silent movie progressed onto HDTV, you cant argue (IMO) that an advancement will occurr in any section of technology.
-
"In my experience, clients have a very general overview of what they want from a computer system, but they do not know the details. A lot of industries work on fuzzy logic that cannot be easily explained to another person, let alone a computer."
-
And in my experience, we have problem solvers who will visit a site and break the problem down into psuedo code for the programmers. These people have no experience of coding, merely problem solving. Its not too far fetched a step, that the psuedo code can be used in a dev-enviroment in some form without any coding experience.
-
"In order for non-programmers to be able to write complex programs," and it depends how define complex doesnt it? 15 years ago, a 3d textured object rotating on an axis would be difficult for the "uninitiated" and certainly require considerable knowledge of the language by a coder. Today? Check out the highlevel languages aimed at everyone. (DBpro?) Its done in one line.
-
Certainly its a simple example, but it does highlight that we have been shifting towards a more accessable highlevel dev environment for some time.
-
Think back to early 2000. How did you create your software? Has the dev platform signifcantly changed for you?
Posted by goblin | November 11, 2008 9:59 AM
Programming has and always will change, programming languages will get more powerful. This is not a tough prediction, its exactly what has happened in the last 20 years. The frontiers will always change and the professionals will always be at the front. If other people think it is so easy, then they are free to become programmers themselves.
The prediction that somehow non-programmers will be able to write code and programmers will be obselete is much harder to prove. We have had programming languages for hobbyists since the first days of computing, it never removed the need for professional programmers with skills and qualifications. Nothing I have seen is even a small step towards your utopia. Access and Excel macros have been more popular, and look where that got a lot of companies.
Look at the building industry, in the early days it was very different from now. Power tools have made things much easier so that anyone who is a bit handy can make a house. The problem is that over time our expectation of quality and methods of building have changed. Nobody said the construction industry would radically change after the invention of the home power drill. The cowboys just made more work for the real builders. Some people are really good at DIY, but they do not build their homes and offices just because it would be done a bit cheaper. Even now, hobby builders cannot and do not make skyscrapers. If all the programmers are fired or lose their jobs to the janitor, who will make the IT skyscrapers of the future?
Posted by billybob | November 11, 2008 11:25 AM
@portuno diamo, I totally disagree with your position regarding these modeling tools pushing programmers out of the picture or programmers "programming" themselves out of business.
Would you say a lawyer could "litigate himself out of business"? Just like every legal case is different so is every business need. You show proficiency in patent issues and I'm sure you could write a service contract yourself, but do you have the experience a lawyer has (and the time)? (btw I assume you're not a lawyer and I could be mistaken).
I'll recap on a little presentation I saw back in college. There was a Microsoft person and one from IBM. The Microsoft guy went on presenting the new visual tools (you know Visual Basic like stuff). Showing off the new technology to a group of computer science students. He stressed how easy it was to develop applications and how an doctor (as in medicine) could develop his own little patient tracking software. At the end of the presentation a student got up and asked why should he keep studying if average Joe could do what he did. As the Microsoft guy was about to answer the IBM guy stood up and said he'd take it. IBM guy said that it was in the student's best interest that the doctor used those tools, because he wasn't going to pay his programmer's fee anyway. But as the doctor became successful and grew and his system did not scale he'd be calling the programmer to build the real thing.
Which takes us back to the whole modeling issue. Will the new "modeling" languages make the programmer obsolete? Hardly so. It will probably make higher level applications available to average Joe. But lets get one thing straight. Computers don't think so unless you dive into those "model blocks" and recode you have no competitive advantage over the next average Joe using the same building blocks. Thus the need for programmers grows it doesn't diminish.
I'm sure you wouldn't trust a multi million contract on the legal opinion of your sales representative and a stock service contract template. You'd call a real full time lawyer (or lawyers). Same applies for the software and hardware infrastructure supporting said multi million contract.
Posted by Gerardo Tasistro | November 11, 2008 11:56 AM
@ billybob
You say >>Programming has and always will change, programming languages will get more powerful.<<
What does "more powerful" mean in your book? Does it mean the language will bring simplicity to complex problems? Does that mean it will bring a more human language syntax to problem solving? Does it mean the language will assume more of the work of defining the solution in the hands of a user who is skilled in the subject matter? Or will your language require even more arcane skills from the programmer and exclude the SME even more than before?
You're arguing one point but saying something completely opposite.
Your own statement "programming languages will get more powerful" leads constructive logic to conclude languages will do more and more with less human effort.
More what? More difficult do loops? More difficult array declarations? More difficult interrupt handling?
If you're still writing do loops and array declarations and interrupt handlers, you're too close to the machine and too far away from solving the problem.
How many "do loops" does one need to define? How will programming languages become more powerful? By reinventing the do loop? Or by becoming something resembling human langauge?
And, if the language become more akin to human syntax, where is the power to solve the problem? In the hands of a programmer to assemble the sentences based on knowing the language syntax? Or in the hands of the SME who can speak the solutions based on knowing the content of the language?
Posted by portuno_diamo | November 11, 2008 4:10 PM
@Gerardo
I see your argument as blanket statements about activity between groups of people and nothing describing what happens in the problem solving activity between human and machine that leads to more granular resolution and more "power" to the language and thus the machine.
You're comparing apples and oranges. Not even a human can adequately do that and you're asking me to justify whether a computer can.
>>Would you say a lawyer could "litigate himself out of business"?>Just like every legal case is different so is every business need.>You show proficiency in patent issues and I'm sure you could write a service contract yourself>but do you have the experience a lawyer has (and the time)? (btw I assume you're not a lawyer and I could be mistaken).>There was a Microsoft person and one from IBM. The Microsoft guy went on presenting the new visual tools (you know Visual Basic like stuff). Showing off the new technology to a group of computer science students. He stressed how easy it was to develop applications and how an doctor (as in medicine) could develop his own little patient tracking software. At the end of the presentation a student got up and asked why should he keep studying if average Joe could do what he did.>IBM guy said that it was in the student's best interest that the doctor used those tools, because he wasn't going to pay his programmer's fee anyway. But as the doctor became successful and grew and his system did not scale he'd be calling the programmer to build the real thing.>Which takes us back to the whole modeling issue. Will the new "modeling" languages make the programmer obsolete? Hardly so. It will probably make higher level applications available to average Joe.>But lets get one thing straight. Computers don't think so unless you dive into those "model blocks" and recode you have no competitive advantage over the next average Joe using the same building blocks. Thus the need for programmers grows it doesn't diminish.>I'm sure you wouldn't trust a multi million contract on the legal opinion of your sales representative and a stock service contract template. You'd call a real full time lawyer (or lawyers). Same applies for the software and hardware infrastructure supporting said multi million contract.<<
How did you get to the point where you could even consider wasting the lawyer's time to review the stock service contract and the sales rep's input?
Did YOU do all the legwork? No. Did you provide the basic governance to get the sales rep to the point where he could fill ou the paperwork on the deal? No. Did you do any of the work the sales rep or the stock service contract required to a point where YOU were going to devote your time to the deal? No.
At some point you abstracted all the legwork out to distributed services until "the deal" was ready to be reviewed in detail.
How much detail is necessary in that final review is the question every business tries to grapple with. FINDING THE SOLUTION TO REDUCING THAT DETAIL is what the entire corporate efficiency process is about.
If your computers can get you farther down the road, your business needs less of your time and less of the lawyer's time.
At some point, unless you're the frigging CEO, the improvement in the software (or the accuracy and skill of your sales rep's input or the granularity and suitability of your stock service contract) YOUR input won't be needed, much less your lawyers.
If that were not true, small business would not exist.
Now, try approaching the debate from a direction that considers the ways in which machines may be made more granular, more arbitrary and more abstract and perhaps we can get somewhere.
Posted by portuno_diamo | November 11, 2008 4:11 PM
Let's try that again. Joe's text processor thinks there's XML in the box.
@Gerardo
I see your argument as blanket statements about activity between groups of people and nothing describing what happens in the problem solving activity between human and machine that leads to more granular resolution and more "power" to the language and thus the machine.
You're comparing apples and oranges. Not even a human can adequately do that and you're asking me to justify whether a computer can.
**Would you say a lawyer could "litigate himself out of business"?**
Of course. If the laws are fixed, the arguments all become the same over time. How many lawyers actually do the legwork on cases. Everyone knows the paralegal and paper has abstracted the lawyer away from the details of each client's case.
Abstraction breaks all complexity into the simplest components. The components match up with each other if the abstraction is proper and the use case is in context.
As long as the path to simplification is accessible, the abstraction will resolve into a function that can be used universally to resolve any argument within the context.
Now, what if the arguments become more complex?
If you've given the paralegal (or machine) an ability to resolve the meaning of the words used in the subject matter (guidelines for the paralegal, XML for the machine), the machine may map out a set of tests by which each trial run of the argument against a potential solution may be evaluated.
If you've given the machine the ability to examine the meanings on all contexts in all other fields (what an arbitrary facility for content and format provides) the machine may test the meaning of those words in other subject matters.
If those meanings may be mapped and tested, conclusions reached in other subject matters may be used to built new rules in the subject matter in question.
This "analogy" is precisely what humans use to explore solutions in other fields for applicability in their target field.
If you have a subject matter expert ready to give guidance, the machine may carry out the legwork required to reach rule-based problem solving mechanisms we all use in our fields.
What a lawyer does in any client case is the same kind of evaluative deconstruction of meaning every engineer brings to any problem - human or machine or math based.
What you're talking about is the ability to resolve semantic meaning into new concepts. I submit we will, one day soon, have analogic searches able to do the same thing in a globally connected machine.
Ultimately, what billybob describes as an inexorable march toward increasingly powerful software does precisely what I describe if the system is equipped to provide abstraction and arbitration.
**Just like every legal case is different so is every business need.**
Not in discipline language terms or nobody would be able to build corporations.
Are we talking about machines thinking like human beings? Or are we talking about machines carrying out constructive and assessive tasks searching for resolutions?
You are saying a machine won't be able to dispense with a programmer until it can think like a human.
I think it can be shown the bar is much lower than that. A programmer assembles syntax to describe what the machine does based on a specification delivered by a solution designer.
Only thirty years ago, piping and structural engineers swore no computer would ever take their jobs. Boy, were they wrong.
And yet, not one piping or structural application "thinks" like a human. That application applies codified discipline-specific knowledge to a discipline-specific domain. The resulting range may be extended by applying new functionality to the application.
THAT requires a programmer at this point, I submit, because we are using traditional software methods. A declarative method which embodies discipline specific rules and resources may do what a programmer does.
Try arguing against that point. Voila! The programmer goes *poof*.
**You show proficiency in patent issues and I'm sure you could write a service contract yourself**
I write specifications and tests to validate the as-built designs to those specifications. A machine can do what I do, in fact.
**but do you have the experience a lawyer has (and the time)? (btw I assume you're not a lawyer and I could be mistaken).**
Not a lawyer, but, my Mother wanted me to be a lawyer. I chose engineering because the problems didn't rest on semantics. Engineering problems rested on physical laws, resolutions based on absolute logic, and extension of knowledge by abstraction.
You're describing interactions between human beings and attempting to say a programmer's job is like a lawyer's job.
REALLY? How much do you pay your programmers? You're more accurately describing an architect or a designer job which requires conceptualization that's outside the realm of machines at this point in time.
I thought a programmer is supposed to be describing interactions between a machine and a problem. The programmer gets the instructions to describe from a human up the execution chain.
If the human is able to specify the problem to the computer, are there not enough primitive functions available by now for a machine sufficiently versed in the solutions and the resources and the applicable governance to build a solution?
We're not talking here about arguing a case in court. We're talking about telling a machine how to approach a problem for a resolution.
Think, please, about a machine that can talk to any resources, anywhere and can apply the results of that conversation to any other resources anywhere. That's the value in "arbitrary".
What can such a machine ultimately do in search of the components necessary to solve a problem within a specific domain? Can it do what a programmer does? Yes or no?
**There was a Microsoft person and one from IBM. The Microsoft guy went on presenting the new visual tools (you know Visual Basic like stuff). Showing off the new technology to a group of computer science students. He stressed how easy it was to develop applications and how an doctor (as in medicine) could develop his own little patient tracking software. At the end of the presentation a student got up and asked why should he keep studying if average Joe could do what he did.**
He didn't say "average Joe". You did. He said "a Doctor". The student needs to continue studying to get to the knowledge point the Doctor reached. At that point, he's not an average Joe. He's a SME. Then, if the student chose to build the patient tracking software, the student would have the subject matter knowledge to do just that.
**IBM guy said that it was in the student's best interest that the doctor used those tools, because he wasn't going to pay his programmer's fee anyway. But as the doctor became successful and grew and his system did not scale he'd be calling the programmer to build the real thing.**
???
The base problem with your thinking is you're stuck in the traditional software model. You won't be able to achieve what I'm talking about with traditional systems. THAT is your problem in trying to devise a sufficiently logical argument.
If you have to worry about having a programmer to scale, you're already defeated.
**Which takes us back to the whole modeling issue. Will the new "modeling" languages make the programmer obsolete? Hardly so. It will probably make higher level applications available to average Joe.**
And at what point does that "higher level application" continue to require a programmer to use to solve a problem?
**But lets get one thing straight. Computers don't think so unless you dive into those "model blocks" and recode you have no competitive advantage over the next average Joe using the same building blocks. Thus the need for programmers grows it doesn't diminish.**
If you have a sufficiently granular abstraction and you have a system able to fashion and test those abstractions against discipline knowledge, the assembled "model blocks" are each the result of governance... not "thought". The "model block" operation doesn't derive from a programmer. It derives from an architect. The programmer builds things to command what happens to achieve what the model block is supposed to do.
We're debating about whether computers can build other machines. Not whether they can "think".
If I have greater subject matter experience over the average Joe, and I gain the ability to build applications, my competitive advantage soars. That's precisely what happened when Microsoft brought a simple thing like Basic to the average user.
The coding community's claims the complexity of programming demands more programmers and the walls you're hitting (more and more programmers without reaching a solution) in scale and complexity of solution interoperations are what are causing your corporate management to look for a better method.
And your solution is "more programmers".
You are using the same arguments mainframe people used to claim Microsoft would never succeed.
Does abstraction of a problem result in more simplified components? Yes or No?
Does that abstraction tend to place a problem in the hands of a programmer or in the hands of a SME? Which one is it?
**I'm sure you wouldn't trust a multi million contract on the legal opinion of your sales representative and a stock service contract template. You'd call a real full time lawyer (or lawyers). Same applies for the software and hardware infrastructure supporting said multi million contract.**
How did you get to the point where you could even consider wasting the lawyer's time to review the stock service contract and the sales rep's input?
Did YOU do all the legwork? No. Did you provide the basic governance to get the sales rep to the point where he could fill ou the paperwork on the deal? No. Did you do any of the work the sales rep or the stock service contract required to a point where YOU were going to devote your time to the deal? No.
At some point you abstracted all the legwork out to distributed services until "the deal" was ready to be reviewed in detail.
How much detail is necessary in that final review is the question every business tries to grapple with. FINDING THE SOLUTION TO REDUCING THAT DETAIL is what the entire corporate efficiency process is about.
If your computers can get you farther down the road, your business needs less of your time and less of the lawyer's time.
At some point, unless you're the frigging CEO, the improvement in the software (or the accuracy and skill of your sales rep's input or the granularity and suitability of your stock service contract) YOUR input won't be needed, much less your lawyers.
If that were not true, small business would not exist.
Now, try approaching the debate from a direction that considers the ways in which machines may be made more granular, more arbitrary and more abstract and perhaps we can get somewhere.
Posted by portuno_diamo | November 11, 2008 4:36 PM
@portuno diamo, well that was sure a long reply. Thanks for reposting since I didn't quite understand the first due to the runon format it was using.
Let me first start by clarifying a few points. I begin to understand were you come from given the past AJAX conversations and your statement about doing test as your main job function. For me a programmer is not someone who converts a flow diagram into a set of lines of code in a file. In our case programmers get involved with the client and does testing too. They might not do design, but they're more aware of the problem than simple "code this diagram" employees. So in a way they become a bit like the SMEs you mention. Hope that answers the question you post "Does that abstraction tend to place a problem in the hands of a programmer or in the hands of a SME?"
Now I agree with you there are a great deal of tools to automatically generate code and test it. We use a great deal of them to build projects, create code, your so called blocks and even interconnect them to build applications. But I haven't had a reduction in programming work. Surely what we called programming today is different than what we did years back. In that way the programmer's role has been "refactored" if you will.
There is also an issue with your position and that is that it ignores personal experience and feedback. I find that to be a key difference here. Your model of solving problems with the machine in control is "exhaustive". Per your words "the machine may map out a set of tests by which each trial run of the argument against a potential solution may be evaluated."
This is true and is the basics of genetic algorithms. And quoting you again
"Abstraction breaks all complexity into the simplest components. The components match up with each other if the abstraction is proper and the use case is in context.
As long as the path to simplification is accessible, the abstraction will resolve into a function that can be used universally to resolve any argument within the context."
We could very well take the components to be "genes" in a genetic algorithm and test possible outcomes given various "gene" combinations. Now if I remember well from my AI class they are assured or almost assured to converge on a solution. So theoretically I can build a program that throws characters into a file until it comes up with a method that sums the values in an array. Which is what I might have been looking for (to give an example). In that context I agree with you and a programmer's job is swappable by a machine. More so it is swapped by a machine that converges to a solution through the use of brute force, but it does not give me feedback on what it just did.
Under the same principles I can define a set of rules and have the machine build blocks, but that isn't taking the programmer's job away. It is just taking his role and changing it. Instead of working with the "raw code" he now has to work with blocks to build applications according to a design provided.
I come from an electronics background and I've developed my fair share of microcontroller code through direct assembler or some C type tool that converts to assembler. I know how hard that is. I also look back and see all the progress we've done in terms of tools to facilitate coding and do the jobs you mention. There is still the joke in some circles that you're not a real programmer unless you can do pointer arithmetic. For me that is a load of bull.
A great deal of tools exist today to automatically generate code form say a database structure or a diagram describing flow written out in XML. Heck we can even change the flow of a program at runtime. So theoretically we can build the blocks even as the program that is going to use them is is being run.
But are we running out of the need for people who can talk to the machines? The so called programmers? I don't think so. Maybe the new programmer's role will be elevated due to workforce "evolutionary stress". And given that we pay programmers less than designers maybe it is their job that is in peril not the programmer's.
What I do see is more computer power out there today. Thus more need for solutions implemented through software and more need to develop them. I see were you are getting to and yes in a "software factory" the programmer position might be in peril as you describe it. But at the same time I see more demand for more and more varied solutions. As you have more projects and development going on are you going to have more designers and architects taking care of a multitude of projects or do you empower some of those programmers with designer roles and have them work for less than a designer?
BTW when I meant "more programmers" I didn't mean more programmers thrown at the same problem or project. But more programmers to handle the rising demand in developments being made.
As a side note question. Do you work for those companies that offshore development? It sure sounds like it, am I mistaken?
Finally I'd like to stand out a line of yours and see your opinion regarding DSLs mentioned in the video. You say:
"Of course. If the laws are fixed, the arguments all become the same over time. "
But we all know laws don't stay fixed. So that adds a new complexity to the automated problem solving. Rules inevitably change and with DSLs so does the language used. I'd like to hear what is your take on domain specific languages. In your view, who defines them? The programmer, the designer or the architect?
Posted by Gerardo Tasistro | November 11, 2008 7:30 PM
@portuno diamo, I'm intrigued by your response to billybob. In the list of things you ask billybob as being "more powerful" in his book you lack "expressing something that could not be expressed in such a language before".
For example the possibility of using classes was added to languages a while back. Yet a few languages don't support that. Same could be said about threads for example.
I'm intrigued to know why you're so apparently obsessed to simplify all to one single benefit and define "powerful" from it.
What you are asking to do can't be done even in human languages. First of all human languages have specific words for particular fields of expertise. Also human language has evolved over time. English is more complex today than it was centuries ago. Yet still today a lot of people can't express their basic needs in it after speaking it all their lives.
The problem does not lay in the language, but in the abstraction of thought. And this is something our educational system is very bad at developing. I believe that even if you had a computer language that closely resembles human language you'd still need a programmer or programmer look alike (label it whatever you please). It's role would be to convert the common speak of the "client" into a though out procedure the machine can follow. That is because the machine (at least now a days) can not think and thus can not fill in the gap the "client" thinks would be filled when he/she gives the same instruction to say a human assistant.
I might also add that you have different human languages and some are better at something than others. But they don't all satisfy the same needs equally. I'm perfectly fluent in English and Spanish yet I find English better fit for some things and Spanish for others. To me "more powerful" means that which satisfies my need best in a certain situation. Sometimes it means easier for the average Joe, sometimes in means faster even if harder to understand, or flexible even if slower, etc, etc etc.
Posted by Gerardo Tasistro | November 11, 2008 9:33 PM