Apps

Poll: Is the Silverlight stack too complex?

Justin James thinks the Silverlight stack requires too much learning to attract developers to the platform. Do you agree or disagree? Let us know by taking the poll.

I recently got into a debate online regarding Windows Phone 7, and my basic premise was that the Silverlight stack requires too much learning to attract developers to the platform.

It isn't that Silverlight is bad or impossible to learn -- in fact, I know a lot of developers who use it and like it -- my concern is that Silverlight seems to not only be a very rich technology by itself, but it also relies on new patterns that few developers are familiar with. In addition, Silverlight is rapidly evolving and changing. To make matters worse, Silverlight does not stand on its own; in most cases, you also need to work with a variety of server-side technologies as well to be productive.

The developers I know who have learned Silverlight are folks with the time and the motivation to spend on continual skillset improvement on their own. In my opinion, Silverlight is really the straw that broke the camel's back. What do you think?

J.Ja

About

Justin James is the Lead Architect for Conigent.

38 comments
terjeb
terjeb

People have been stating in this thread that SL requires a jumping through hoops to get things to work. It has also been said that SL is far more complex than most (or any) of its feature comparable predecessors. Having investigated a few stacks lately to deliver some fairly complex in-house apps, I find those statements interesting. So, I have a few challenges for JJ and others: 1 - please name a hoop that requires jumping 2 - please name some feature-comparable predecessors 3 - please elaborate on one or two points where the feature-comparable predecessors, or any other stack, is less complex Simple really. Put your knowledge where your mouth is. Sadly I know from previous discussions of this ilk that none of the opinionated will actually manage to rise to such an easy challenge.

Justin James
Justin James

The reason why no one ever rises to your challenges is because it isn't worth the effort. No matter what I say here, you will ignore it and continue blasting away screaming "oh, but you are wrong!" For example, I stated that in demonstrations of SL integrating with WCF that is looked very painful. Your response, "but you are wrong!" Nonsense. I faithfully reported what I saw. You say, "oh, but that isn't how it is!" Well, it's *exactly* what I saw. How about this. You put *your* money where your mouth is. Write an article showing how easy it is to write a typical, data driven application in SL. Write this application in a manner so that the average .NET developer can use it. Send it to me and I will have it published here. J.Ja

terjeb
terjeb

>> No matter what I say here, you will ignore it and continue blasting away screaming Really? I will? How do you know? You haven't tried. I find it astonishing that you actually take the time to respond to my postings, and completely fail to make a single point to back up your statements. >> Write an article showing how easy it is to write a typical, data driven application in SL If you insist, I will of course do this. No problem. In the mean time I have already pointed you to a short series of videos that does exactly that. I have challenged you to take the time to take a look at it, but you declined. How would you like the submission? A URL or something else?

terjeb
terjeb

Have been out with the flu for a few days, so I haven't had the opportunity to do much of anything at all. Will send you the article by EOW, which you should not assume is EOWorkW :-)

Justin James
Justin James

"Really? I will? How do you know? You haven't tried." Go look at your responses to my responses, and look at how many of the things you say I haven't addressed which are in either the original item or my responses to you or to others. "I find it astonishing that you actually take the time to respond to my postings, and completely fail to make a single point to back up your statements." Because I've made the points time and time again. If you can't be bothered to read them, I can't be bothered to rewrite them. "In the mean time I have already pointed you to a short series of videos that does exactly that." Yes, and I have it on my to-do list to watch them. In all honesty, I don't like watching online video (or screen shares, for that matter), it's not an effective form of learning for me. I like text write ups (where it is easier to review and not miss important points) and in person presentations where I can ask questions. "How would you like the submission? A URL or something else?" If you send it directly to me, I can have it published as an article on TechRepublic. If you have another place you prefer to get some traffic and link love, send me an URL and I'll point to it in my next news piece, or perhaps in a full length, follow up article. J.Ja

mikifinaz1
mikifinaz1

Another boat anchor for the OS to drag around that only benefits hucksters.

adornoe
adornoe

The question should be, "Can Silverlight and/or any other tools available for developing applications, get the job done? Look, you're basically asking for easy development tools and easy to learn tools, so that, virtually anyone can develop their ideas into apps. Not everyone is capable of developing apps, and the fact of the matter is that, not everyone should be in the business of developing apps. But, not everybody should be a developer, and anybody that cannot take the time to learn a development tool or a skill, should not be in the field to begin with. Programming is not rocket-science, so, just about anybody with average intelligence can be a programmer or developer. However, those that want to take the time to learn "how to do it" with "new tools" or with "the hard to learn tools", will be the ones that reap the rewards. Not everyone deserves to reap rewards if they take the approach that something is too difficult or too time consuming to learn. In the past, it used to be difficult to learn how to program in C, or C++, or even COBOL, but, the people who took the time to learn the tools ended up reaping the rewards and, they ended up programming and developing those great desktop and laptop applications of the last three decades. So what if Silverlight is not so simple and it takes too long to learn? And, who cares that it might be changing too fast with many versions? If one wants to get involved, the rewards won't come, and those that can't take the time or can't be bothered should not be in the field to begin with. While development of apps should not be as complicated as rocket science, it also doesn't have to be so simple that we end up with too much crapware being developed and getting loaded into an "apps store" somewhere. Stop the complaining and either get with it or leave it to those that are willing to learn and to develop with what is made available. Even if "only" 200,000-300,000 people take the time to learn Silverlight, enough knowledge and experience will have been gained towards making applications for Windows and WM7.

Justin James
Justin James

I don't know about your situation, but too many of the developers I know are simply starved for time. They are often working 50+ hours a week or on continuous death marches. They jobs do not provide them with any kind of training or learning resources, other than maybe lettings them buy a book with a company account. Given those circumstances, when they get home, they are faced with either trying to learn a new tech... which they may not ever use... and spending time with their families, enjoying a hobby, relaxing, etc. When faced with that choice, only the most passionate developers are going to choose to spend their free time doing the learning. I think that it is no coincidence that the overwhelming majority of Silverlight developers I know are childless (or their children are not living with them) and either single or married to someone who has a very busy, independent life of their own. I am curious to know what rewards justify the commitment. While Silverlight developers are in demand, the salaries I've been seeing (at least around my area) are not justifying the learning curve. They just are not paying like a job that requires that much extra knowledge. The idea that techs should be deliberately hard to work in, to preserve their use to only the cream of the crop is not a good one. I've heard it time and time again. What invariably happens is that people end up working with a difficult tech and make a mess of it. While it keeps some folks out, it doesn't keep them all out. Look at the number of garbage apps written in C++, which is the king of "hard to work with". In fact, it wasn't until .NET came out that Windows started being pretty stable. Why? Because it was finally possible to write an application and not have to worry about a lot of the things that were previously making it hard to write reliable Windows apps, like memory management, buffer overflows, etc. Even classic VB devs struggled with this stuff because of all the COM marshalling and interactions with the Win32 API and such. Raising the bar only helps the egos of those who are working with the tech, and that's it. I challenge you to show me a single instance where making development harder made the end users happier or delivered a better product. J.Ja

jck
jck

I work 40-50 hours a week. I drive 8-10 hours a week for work. My job sends me to no training (only 3 jobs I have had in 15 years did). I remember dealing with the marshaling and everything...vaguely. And, it wasn't pretty. Silverlight rarely gets called for here in my area (Tampa metro), and when it does the pay is not that great. But, Visual C++ wasn't that great...at least Version 5. :^0 But I agree. A more robust, easier-to-use development environment not only makes it better for the developer. But, it also usually will give them more flexibility to do "extras" that do make the client/end-users happier. That's why I stay away from unproven tech now. I took one job working with cutting-edge, and the boss was a pain, the tech was unstable, and there were no other firms around to move to for a better enjoyment of my work.

adornoe
adornoe

I challenge you to show me a single instance where making development harder made the end users happier or delivered a better product. That's not the question nor the point. It's not about how hard or simple it is to get development work done. It is about getting the work done, regardless of the simplicity or the complexity. And, getting the work done includes developing a product which the end user will be happy with. If a tool is too hard to use, or it's too clunky, or the learning curve is too large, perhaps it's time to re-evaluate and go on to something else, or to bring in new tools that can get the job done easier and faster. But, when the tool-set available is the only one that can get the job done, it's time to sit down and learn, and yes, even put up with it until the next update/upgrade. People have "learned" to work with simplified methods for creating web-pages. Even a local independent insurance agent (as an example) can have a presence on the internet by creating his/her own "simple" web site, and yeah, some of them can actually turn out to look more than simple. Real programming/development has never been able to get to that level of simplicity. If a company wants a robust application, web-based or desktop/laptop, and with dynamic data in the background, he is going to have to turn to a programmer/developer/analyst. That is a professional, who very likely has had 4 years of college training, or at least has gone to a technical school, or alternately, has learned his skill-set on the job and for a long time. Those aren't easy paths and they're also not the "programming made simple" paths. It takes dedication and a love of the art to become a real good developer. I used to love what I did, having worked on mainframes and mini-computers for most of my programming/development career. I no longer work in the field and what I do I'm doing on my own. However, I never looked for the easy way of doing things and I never expected to become an expert at anything in a matter of 2 or 3 or 4 weeks. I might be able to quickly get the book knowledge and the principles of a language embedded in my brain, but the actual experience in using the language comes after the book learning or classroom training has been done. That building of experience is a much lengthier process than the training process. So, even with simplified tools, experience counts. If what matters most is experience, then even a "difficult to learn" language or development method is inconsequential. It doesn't matter how difficult or simple a development process is. What matters most is the experience developed over time and the quality put out by that experience, and the dedication of the person doing the work. Furthermore, and personally, during my career, I was trusted to produce good work because of my dedication to learning the skill-set necessary to get the job done, and I took pride in producing good quality work for whatever company or end users were counting on me. Back during my mainframe years, my development tools were a pencil, programming work sheets, and punch cards and/or dumb terminals. The development process took longer because there was no immediate response and correction cycle such as there is now. But, the quality of the work I produced then was equal to anything that anybody could produce now with their new development tools. Don't get me wrong. I like the new development tools of today. They make the process of programming/development easier and even faster. But, the underlying languages don't have to be simplified to the point where the target is anyone that can get their hands on a computer. That's not what development is about. Development is for those that want and can dedicate their time to learning the right way of doing the job. During my career, I also worked long hours and oftentimes even 20 hour days, and at times, I slept and showered at my job site because of the demands of the jobs and the approaching deadlines for projects. Yet, I found the time to learn the new languages and the new computers and the new development methods. Long hours is not an excuse for not upgrading one's skills; eventually, the time for learning will be there. The fact is that, when it comes to the field of computers, you never stop learning, and the way things are done today might change completely next month. In this field, people have to be ready for change and for learning new ways. If somebody is not comfortable learning Silverlight, then they don't have to go in that direction and they can dedicate themselves to doing things the C-objective way or the Javascript way. There will be those that can and will take the time for learning Silverlight and making a living at it. Some things are not intended for everybody to learn and to love it. Expecting a system to be simple to learn and simple to use is not going to get anyone a secure career path. I'm not saying that programming should be difficult or that development tools should be hard to use, but one has to use what is available and not just wish that things should be very simple to learn or use. Perhaps with time, things will get simpler. But, you either work with what's here and now, or move on to something else. The fact is that, when it comes to Silverlight, there will be plenty of people willing to learn it and use it to make a living with it. The others that find it too difficult can just simply register their complaints move on to something simpler if they can make a living at it. Choices are good. Love it or move on. Complain and make suggestions and hopefully someone is listening. But, until the simplicity is built to suit the complainers, they can either move to another platform, of learn to work with what's available. I myself started learning Silverlight and gave up, but not because it was too difficult to learn or that the learning curve was too long. I got involved with something else and might come back to Silverlight in the future. But, being a realist, if there is a good alternative to Silverlight in Windows and WM7 development, I'd prefer it if it was simpler and quicker to implement. But, if Silverlight turns out to be the only, or best, method for doing things the "Windows way", then I'll just register my complaints and go about learning the language/toolset.

terjeb
terjeb

>> I have said (and I feel that you'd agree with me) that Silverlight is substantially more complex than many, if not most, of its feature-comparable predecessors. Could you elaborate please? Which predecessors are you thinking about in particular?

Justin James
Justin James

But I've been addressing it the whole time. 1. I have that development needs to become less complex. 2. I have said that Silverlight does not, to the best of my knowledge, solve any major problems that were not address by earlier, less complex technologies. There are a few things it does which are rather unique, like Deep Zoom. It has good video streaming so long as you prepare the video with the Smooth Streaming. But for the day-to-day needs of the typical developer, it does not do anything new. 3. I have said (and I feel that you'd agree with me) that Silverlight is substantially more complex than many, if not most, of its feature-comparable predecessors. Therefore, "Silverlight is too complex". Is it took complex to solve the problems that it is uniquely suited for? Not at all, until something simpler comes around. But for the time being, Silverlight is too complex for the majority of developers to justify spending their time learning, until it solves their needs either much better or much more easily than their current tools. Looking at the poll results, I am clearly not in a minority here. J.Ja

adornoe
adornoe

there is still something that you're not addressing and that you brought up. That point is regarding Silverlight. What advantages does Silverlight bring that I couldn't get elsewhere (Web applications, WinForms, X11 apps, etc.)? Yet, your original point was regarding the complexity and the learning curve for Silverlight, and the lack of user friendly development tools for it. But now, you're talking about how Silverlight is just another method for getting things done that other tools are already capable of doing. That is fine, but that doesn't address your original points. The way I addressed it is to suggest that if it's not your "cup-of-tea", then move along to whatever you can use to get the same job done. One doesn't have to put up with the Silverlight way or the Microsoft way, and one doesn't even have to purchase a WM7 phone. If the job can be done with other languages and with other development tools, then by all means, use the other methods. But, complaining and registering the negatives should be as far as it goes and hopefully, the people at Microsoft are listening. However, there are developers out there who don't mind getting dirt-deep into learning the tools of the Silverlight methods. They may not like what they see, but they're willing to learn and use those tools. And, those tools are not exactly as hard as rocket science. As far as I can tell, the only unique feature it has right now is WP7 support, and without buyers for that phone, that is scant motivation to learn it. That is an irrelevant point in the context of your original points and discussion. We don't know what the future holds for WM7 and believe it or not, we still don't know what the future will be for Android or even the iPhone. The smart-phone market is very fickle and when people are given a huge number of options, nobody will be able to state that there is "one sure winner" or that a particular phone "is dead in the water" before it has been in the market for a period of time. However, WM7 was just released this week, and it won't be available to "real" customers until mid-November. So, anything anyone predicts for WM7 right now is completely without real market reference, and you just made that mistake. The point is that, until a product starts selling and builds a following, no one can make any reliable predictions about that product. Thus, you could've said the same thing about the iPhone and Android and iPad and virtually any new and untried product. So, why not wait to see how people take to WM7 before you start making judgments about it? But, that last part, again, has nothing to do with your original points regarding Silverlight. Regarding work hours? Yeah, I had long working hours, but it wasn't always something that kept me from spending quality time with my family. The only times that I regret not having enough time with my family was when I became an IT consultant and had to spend weeks at a time away from home, but even then, I gave up that gig because family time was very important to me. One just needs to learn how to manage his time at work against family time. So, essentially, I didn't really sacrifice that much to the point where the job became the number one priority. But, none of that changes the fact that, in the IT world, one has to be constantly learning completely new things and completely new ways of doing the things one is familiar with. It's the nature of the beast.

Justin James
Justin James

"It's not about how hard or simple it is to get development work done. It is about getting the work done, regardless of the simplicity or the complexity. And, getting the work done includes developing a product which the end user will be happy with. If a tool is too hard to use, or it's too clunky, or the learning curve is too large, perhaps it's time to re-evaluate and go on to something else, or to bring in new tools that can get the job done easier and faster. But, when the tool-set available is the only one that can get the job done, it's time to sit down and learn, and yes, even put up with it until the next update/upgrade." That is indeed the point. Silverlight does not address any single problem that has not been addressed elsewhere. You've been around as long as you have and you can't see that? What advantages does Silverlight bring that I couldn't get elsewhere (Web applications, WinForms, X11 apps, etc.)? As far as I can tell, the only unique feature it has right now is WP7 support, and without buyers for that phone, that is scant motivation to learn it. " I no longer work in the field and what I do I'm doing on my own. However, I never looked for the easy way of doing things and I never expected to become an expert at anything in a matter of 2 or 3 or 4 weeks. I might be able to quickly get the book knowledge and the principles of a language embedded in my brain, but the actual experience in using the language comes after the book learning or classroom training has been done. That building of experience is a much lengthier process than the training process. So, even with simplified tools, experience counts. If what matters most is experience, then even a "difficult to learn" language or development method is inconsequential." I could not agree more. The problem is the business cycle. The higher ups declare, "this is the technology we are using for this project" and either you become an instant expert or they bring in a consultant or outsource the labor to someone who claims to be an expert (regardless of their actual skill set). The days where someone was given time to learn, adapt, and grow into new technologies is long gone, *if it ever truly existed*. This is why the ideal that you and I share (expertise built over time) is not realistic when the rubber meets the road. It sucks, big time, and is a major source of the buggy garbage apps that this industry churns out year after year. "During my career, I also worked long hours and oftentimes even 20 hour days, and at times, I slept and showered at my job site because of the demands of the jobs and the approaching deadlines for projects. Yet, I found the time to learn the new languages and the new computers and the new development methods. Long hours is not an excuse for not upgrading one's skills; eventually, the time for learning will be there." I used to be the same way. I still am, to an extent. It's slowly changing. Getting married and having a kid will do that. If you honestly think that the typical person is going to love their job so much that they ignore all else to pursue their career goals (even if it is a passion for them), you are wrong. More to the point, it is wrong to expect it. The last I checked, my employer's name is not branded into my rump. They don't own me. They have no right (legally or ethically) to expect me to work like that, or to devote my personal time to the job on a regular basis. I'm the exception to the rule, because I do it all the time. Take a look at the payrates in IT. The actual dollar amounts for jobs have not budged in well over a decade. In other words, accounting for inflation, we are getting paid less now than we did 20 years ago. Given the decline in pay rates, why *should* someone put in the hours today that you were putting in 10 or 20 years ago? I used to feel a lot like you. If you've been a long-term reader of mine, you'll see a transition in the last year or two, in fact. What changed is that I talked to a lot of industry insiders about this nagging feeling that I had "been there, done that" with so many technologies. I read a lot of history of the industry. I wondered why I had a sense of deja vu whenever people talked about their projects. And I realized something: we've been re-creating the same applications for 20 - 40 years now depending on the app. How many times do we have to rewrite the word processor? Does it really matter if it is Web based or not? Each time we rewrite these apps in the technology du jour, we achieve a level of functionality (and bugginess) that the previous crop had 10 years before. Wee. Look at the "Web revolution". After 15+ years, Web apps are *just now* achieving the level of functionality that desktop applications had 15 years ago. The only people who win in this game are the folks selling pickaxes and sifting screens to the miners. Sure, there have been a few new true innovations (mobile computing comes to mind with the location-based apps), but the typical developer is writing apps right now that could have been done 20 years ago with a less attractive UI. When I realized this, the only conclusion I could come to is that development has to get *substantially* easier. We have an industry that thrives on producing and maintaining poorly written applications as a combination of poor business models (certain companies just can't make a dollar without the never ending upgrade cycle and support contracts), too few talented, experienced developers to go around, and business cycles that don't allow work to be done right or for the developers to ever become real experts. The only way out that I can see, is a dramatic reduction in complexity to do day-to-day development. This is why I have become such a big fan of the new crop of 4GLs out there. They make it possible to become an expert at creating applications in their particular paradigm in weeks, not months or years. That's very, very important. It allows a small group of expert developers to focus on making really good tools, systems, and languages that address the most common development patterns. This is the only approach that can satisfy the need for development while making it possible for the typical developer to keep up with the learning curve and produce quality applications. J.Ja

gcohyea
gcohyea

I think this is kind of a stupid article honestly. Have you ever tried developing for iPhone/Android/Symbian? It's a nightmare. Silverlight totally streamlines the process, the developer toolkit is simple to install and gets you making apps in literally minutes. There are a ton of official tutorials and guidelines. Not only that, but if you want to start making WP7 apps you can also consider that there are is just a ton of information available for silverlight already that can be used for WP7. C#.net framework is great as well, and tons of people who are familiar with that can with a few clicks start writing WP7 apps. IMO it is THE BEST developer interface and stack of technologies for mobile development.

Justin James
Justin James

... but that doesn't mean it's not complex. Big difference, and an important one. If you look at the technologies needed to competently write a Silverlight app, it is mind boggling: .NET Framework C# WPF/XAML Expression Blend Silverlight WCF Data Services Earlier in the year, I saw a demo of Silverlight. It took the guy 45 minutes to have it consuming a Web service. That's a 30 second task in any other .NET app. I wasn't impressed. J.Ja

terjeb
terjeb

Seriously Justin. What would you consider a small stack? A less complex stack? You are talking about the entire stack here. From the client all the way down to the server and DB. Which stack is smaller and easier to get your head around? Java GUI framework on the phone J2EE framework on the server JBoss and it's loveliness (or perhaps Spring) Hibernate None of these give you an integrated environment for putting things together though. >> I saw a demo of Silverlight. It took the guy 45 minutes to have it consuming a Web service I suggest you base your insights on Silverlight, not on an idiot fumbling and searching, and start looking at what someone is actually doing. It doesn't take 45 minutes to consume a WS in silverlight, it takes basically exactly as long as it takes in any other .NET app, the steps are basically identical. If you start out with a relational DB and the SL business application template, you can add a WS interface plus the SL and an oData interface onto that DB together with a complete editable master-details view in Silverlight onto that DB in less than an hour. If you have some experience. Ian Griffiths has a few videos where he goes through developing a SL business app with a DB backend exposing (if you wish) a WS and oData interface here: http://www.silverlight.net/learn/handsonlabs/ It is done in a series of short(ish) lectures where he is spends most of his time explaining what goes on, and just a little time each lesson on the how (so you get a reasonable understanding of the why's of what you are doing). I would challenge anyone to show me any tool that can do this equally well. Challenge to JJ: Go through these videos. Come back if you have questions. Tell us which platform/stack provides equivalent functionality and ease of use.

terjeb
terjeb

As was once said in a movie ... xxx is as xxx does. I was part of a start-up that delivered commercial applications on Java long before most (second release of large enterprise apps in 1998). I have been a proponent of Java and the Java way for years and years. I am not, and have never been, a Microsoft fanboi. Just to clear that up since, whenever I say something positive about MS it seems people think I am a mindless fanboi. In the comments that came from jck, he repeatedly stated him self that he has no idea what he is talking about, but he has no problem opining with some gusto despite his admitted ignorance. One of his first comments were: "I was unimpressed with it even in Beta.". I thought he was joking. SL in Beta was a Javscript and server-side technology. He might as well have said that he didn't think much of SL because he had played a bit with FORTRAN. He followed that up with "And from the sounds of it in 2 years, it's gone nowhere". This is such a ludicrous statement that it actually deserves far more scorn than I had to pour upon the ignoramus. When someone (not me) who didn't mistake SL for COBOL corrected his mistakes, he retorts: "it's been 2 years + and Microsoft hasn't developed a fully robust dev environment?". How does he know? He hasn't been near it for years. It is a ludicrous statement given that he has no idea what he is talking about in this particular case. Then comes "The slow, faultering behemoth eventually will tumble over.". Or, to sum up his "points". Silverlight must be bad because it is Microsoft, and jck doesn't like Microsoft. This is not too uncommon among the "pro" software world, and I have to admit, I belonged firmly in that camp until last year. It is also utterly wrong. The Microsoft stack today is heavily influenced by the best practices out there, and they are moving to become almost diametrically opposite to the old IBM Behemoth. Believe me, I know, I used to be an IBM developer. So, did I beat up on him? No, I attacked his positions pointing out that they were ignorant. They were. By his own admission. The challenge stands - please try to rise to it.

Justin James
Justin James

... but based on the personal attacks you seem happy to dish out (namely, to jck who in the past has been an thoughtful contributor to these discussions), I highly doubt that you would put forth the effort to read it carefully and respond with equal consideration. Even in this response, you have clearly failed to read the things that I have spelled out very plainly, because you are taking this issue personally. If you can stop allowing criticism of Silverlight to feel like a criticism of yourself, then perhaps this conversation can continue. Beating up on me? Yeah, I'll put up with it for the most part. Beating up on one of the other readers here? Not acceptable. J.Ja

terjeb
terjeb

>> As soon as you have to leave the cocoon of the tooling (and from what I've read, that happens whenever you need to go beyond the basics), the SL stack is a mess. Again - could you elaborate? Compared to what? What do you KNOW about this Justin? >> Compare the SL stack to Perl + DBI, PHP + MySQL, or even .NET WinForms + ODBC and you'll see my point Wow. I did Perl + DBI back when that was cutting age. Some time around when COBOL was cutting age too. PHP is on the level of BASIC anno 1982 (OK, slight exaggeration) Building major cross-platform apps in PHP is not a fun task. One day someone comes over and asks you to add an oData interface to it and good luck to you. >> The person was a Silverlight MVP If it took him 45 minutes to consume a WS, then he must have been doing something seriously wrong. Really, try it. It doesn't take 45, or 5 for that matter, minutes. Check the tute I pointed you at, you'll have complete editable list/details view in place, INCLUDING adding the Web Services interface, in place in less time than that. >> There were a ton of intermediary steps where the toolset did not handle things That simply isn't the case Justin. It really isn't. Create an app, point it to the WSDL interface, and you have started flying. No steps. 5 clicks. I could do this easily a year ago too, in fact I did. A year ago I put together a Silverlight demo that pulled data from Outlook, an Oracle DB, MS Dynamics CRM, a WS interface and a proprietary internal XML pipe. I put the app together in an (albeit long-ish) afternoon as an internal POC where the need was to edit (yes, it was two-way) all this info as if it came from one place. >> as soon as you have to go beyond the tooling, it is a real tangled mess. A statement you have made repeatedly with ZERO backing up. What specifically is tangled about it, and where is the mess? BTW, I know which main part of the stack is problematic, but you have so far not even come close to touching upon it. It doesn't make you seem credible. Hint, it starts with an E. If you want to talk about tangled horrible messes that should be dragged out back and terminated with prejudice, ASP.NET is at the very top of the list. I would love for someone to point me to a stack that beats the SL stack. I have not seen any.

Justin James
Justin James

You are confusing better tooling with better technology, and it's a mistake. Compare rolling a WCF Data Services service by hand to doing the same thing with ODBC by hand, and you'll get my point. As soon as you have to leave the cocoon of the tooling (and from what I've read, that happens whenever you need to go beyond the basics), the SL stack is a mess. Better than Java? I guess so (I haven't used the equivalent stack in Java). But simple? Absolutely not. Compare the SL stack to Perl + DBI, PHP + MySQL, or even .NET WinForms + ODBC and you'll see my point. It only *seems* simple because there are some good code generators out there. "I suggest you base your insights on Silverlight, not on an idiot fumbling and searching, and start looking at what someone is actually doing. It doesn't take 45 minutes to consume a WS in silverlight, it takes basically exactly as long as it takes in any other .NET app, the steps are basically identical." The person was a Silverlight MVP who knew what he was doing, not "an idiot fumbling and searching". There were a ton of intermediary steps where the toolset did not handle things, and that's what took so long. It's back to my point about tooling. This was roughly a year ago, so it is quite likely that the tools have improved since then. But it doesn't change the fundamental fact, which is that as soon as you have to go beyond the tooling, it is a real tangled mess. J.Ja

gcohyea
gcohyea

that any other stack for developing mobile applications is less complex or more efficient. That's what I was arguing. 45 minutes? Maybe he was just horrible with the stack, that can happen with any technology though. I can load a template, drop in a graphic, a couple buttons, and interact with the twitter api in a matter of 1 minute or 2? It's simple. Expression blend is the only non-intuitive interface in the stack imo. everything else is really refined.

smithkl42
smithkl42

I agree about Expression Blend: it's a mess. I was surprised to find out from a Microsoft contact that until V4, the team at MS responsible for creating this premiere tool for designers didn't even *have* a designer on the team. That helps to explain quite a number of UI choices in Blend. Hopefully those issues are going to get addressed in the next release cycle. Blend is incredibly powerful, but easy or intuitive? No, not really.

Justin James
Justin James

iOS development in particular is wretched, but the recent relaxing of their rules for other tools at least brings a little bit of sanity for it. Android is a bit lighter weight than Silverlight on WP7. Unlike WP7, though, the Java ecosystem isn't really designed from the ground up to work together, a lot of stuff (to me, at least) has that "cobbled together" feel. The big problem for WP7 from the development standpoint is that they can't afford to have barriers to entry or be "just as hard as" the others. They need to be a *lot* easier. When the iPhone came out, it was the first smartphone people really wanted. When Android came out, it was the first acceptable smartphone available on carriers other than AT&T (up until a few months ago, AT&T only had one or two Android phones because they had the iPhone). Basically, Android was the smartphone for people who didn't like the iPhone for whatever reason, or who weren't going to switch to AT&T. But now that Android has fulfilled the demand for a "good enough" smartphone experience off of AT&T, WP7 has a long road ahead of them, especially since it will initially be AT&T only, going head-to-head against both the iPhone and AT&T's recent Android additions. So with the likelihood of bigtime user adoption being fairly low, Microsoft needs to sweeten the pot for potential WP7 developers, and making it much easier than it currently is to write WP7 apps (especially if you are not currently a Silverlight developer) is crucial! J.Ja

jck
jck

I was unimpressed with it even in Beta. If they've made it any worse I wouldn't want to even consider it.

BrandonCollins
BrandonCollins

That was a long time ago, Silverlight 4 is just a little different then the Silverlight beta...and by a little a mean a ton.

jck
jck

Silverlight 2 Betas 1 and 2 I messed with at the former job. A "beta" tool it wasn't. It didn't even have simple controls like a treeview which you use to design an interface. And the LINQ stuff was not at all easy to implement. you practically had to go in and code all your parms and connections and what not. It reminded me a lot of Visual C++ 5 when it came out. "We'll provide you a basic framework to start from!" meant "We'll build the header for your C++ function and put some incredibly generic remarks inside where your code has to go". Silverlight 2 Beta was more like an alpha. I stopped using it ASAP. And from the sounds of it in 2 years, it's gone nowhere.

terjeb
terjeb

>> I'm glad they have come along, but if it's not fully robust yet and development is still tricky or has lots of hoops to jump through Please elaborate.

terjeb
terjeb

I find it rather amusing that someone would actually build a case for or against something based entirely on their own ignorant assumptions about what they are building a case. In your case it seems education would be a complete waste.

jck
jck

I went back to the silverlight.net site for grins, and saw 2 things haven't changed: 1) The look and feel has not changed a lot...still dull and interfaces need a lot of massaging. 2) Jesse Liberty still makes good tutorial videos. They did integrate it to VS, which is a plus. Hopefully they don't limit it to the top-tiers of VS 2010 tho. Was nice to see a full toolbar tho. And, not having to flip between 2 different apps to do your development is a big plus. But, I can't spend day and night on finding all the great intracacies and detriments. I've already spent too much time on it today. Back to solving data migration issues. :)

jck
jck

But as I said in my other post a few mins ago below, it's been 2 years + and Microsoft hasn't developed a fully robust dev environment? I don't doubt MS will pass Flash. Of course, how standards-compliant MS will be is another story. They usually tend to want to do things their way. Microsoft is really becoming the 21st century IBM of the computer world. The slow, faultering behemoth eventually will tumble over. I'm glad they have come along, but if it's not fully robust yet and development is still tricky or has lots of hoops to jump through...are the little goodies they offer really that much of an ROI to your organization? I would think Silverlight is a niche still, especially for already Microsoft-centric organizations. I think for any new firm looking to implement a new solution its cost-vs-benefit still doesn't offer the most return for most organizations. If Silverlight (much like Vista and Win7 and Server 2008) had been such a beneficial upgrade, most organizations would have already upgraded past ASP.NET, XP, Server 2000 and 2003. I do hope for the sake of developers, it becomes complete and offers seamless development of all technologies.

jck
jck

Fact is, I noted I had not been in it for 2 years. I also noted I had not worked with it since SL 2 Beta 2. And, I was totally correct in saying it was a P.O.S. and that by the sounds of it that it hadn't. And, I don't recall SL 2 Beta 1 being anything more than really Alpha software. No tree controls No radio buttons No backward compatibility from beta 1 into beta 2 (anyone remember the upgrade tool eating your interface?) Primitive LINQ development. Limited everything. When Microsoft did add functionality, they broke even more. In fact, I also remember the 2008 Olympics games deciding to use it because Microsoft blew it to be so great...and their site crash more than 5 year olds driving semi-trucks. As for where it's gone, why would I care to educate myself on that? I don't write web applications anymore that are "cutting edge" at my job. It's a waste of my time, and my employer's time. I don't deal with Web applications anymore at my current job, other than making sure the stored procedures work for their DB hooks...or maybe make a minor modification to a Java page or some C++ code. And, we don't use anything Microsoft in our software, excepting having to have VS 2008 VC++ on the server with our COTS centralized management web software that is .NET 3.5, and the slowest piece of software I've ever seen. I'm sure the product has matured, but in 2 years they haven't gotten from a "beta" product to a fully robust, complete platform for web development done? Seriously...there's something wrong. They release whole new Visual Studios every 2-3 years. Silverlight's not fully mature in 3-4? Sounds to me like someone at Microsoft doesn't know what they want...or where they are going with it. I'll stick to non-Silverlight development and save $1000s for myself and clients by using open tools, or slightly less-current tech and not needing the latest and greatest from Microsoft for web development. I'm sure as long as your employer/clients have the required hardware and software to run Silverlight, they will be quite happy. Thanks for your concern though. Good luck.

terjeb
terjeb

When you take the time to comment on something you really should try to educate your self on it before you make a fool out of your self. Really, I mean that as a friendly advice. There is a huge step from SL 1 and 2 to SL 3.x and 4. In fact, I would challenge anyone to find a better way to develop in-house web-distributed vertical applications that SL4. There simply isn't anything on the market that comes close. SL 3 and 4 delivers on what Sun promised for Java way back when it was sold as a way to build browser-based apps. If you want to develop a vertical app today that that runs on your intranet, your desktop PC and your employees phones, nothing plays in the same league as SL. The stack that JJ complains about is not detrimental to this, it is a huge boon. Oh, and I come from a Java background. I have battled J2EE, JBoss, Hibernate etc for years. Honestly, at .NET 3.5 and SL 3 and 4 Microsoft took a leap that put them well in front of the J2EE world in almost any respect (mostly bar multi-platform, which is a serious concern for me, I admit). Alone, I can deliver in hours and days what my colleagues working on JBoss, Seam and Hibernate can't even do with a multi-person team in weeks. Honestly. And sadly I again find my self cheering MS, I never used to, but this is good stuff. Very good stuff.

smithkl42
smithkl42

I've been using Silverlight pretty extensively since version 2.0, and I can say that it and the tools around it have come a long, long ways. It's nothing like what you played around with. There are a couple specific things that it's still missing (such as usable webcam and microphone support), but those things excepted, it's at least up to where Flash is, and in some areas, is past it (C# vs. ActionScript, anyone?). Given how slow Adobe has been to iterate on the Flash platform lately, and how quickly MS has been iterating on Silverlight, I anticipate Silverlight passing up Flash in terms of features and usefulness within the next year or two.

BrandonCollins
BrandonCollins

I just spent the last four months of my life developing a CMS system all while trying to learn Silverlight from scratch. I have to say it was definitely a less then enjoyable experience but I also find myself looking forward to my next project. I've learned from my mistakes and I do feel like I could do some pretty awesome things next time around. The learning curve seems a little steep, the ability to find articles that actual pertain to the more recent changes(as opposed to silverlight 2 problems) is difficult, and the amount of different frameworks you need to become familiar with(Mvvm-lite, MEF etc) in order to be successful seems fragmented and hard to find but for those that are able to make it over this hump may find themselves with a nice little advantage for future projects. I'm also looking very forward to obtaining my Telerik license at techdays this year which I think will really help productivity.

terjeb
terjeb

Sorry, wrong place

AngloThai Solutions
AngloThai Solutions

It is powerful and a good easy to set up dev stack, but it is not an easy one to learn on the job. Expression Blend is, IMHO, just awful for a programmer - it may be great for a designer who is a non-coder, but in the real woprld how many of them are there - and how many of us d our own design from paper specs rather than a warm bodied dedicated GUI designer. I find I take so long trying to figure out how to do it in the interface, that I just end up coding it in Xaml directly anyway. In the end I use it mostly for generating test data and previewing - and code everything in VS. It balso has the annoyance of not being able to collapse the code which means endless scrolling up and down and looking for your place again. SL is still missing some important things I think, useablt 2-way video streaming (or unpre-pared streaming - i.e. not Smooth Stream!) for VC, better printer control ability to create Isolated Strorage that is shared across domains if required (even between HTTP and HTTPS in nthe same domain would help), absorbtion of all the WPF controls and functionality, and more - the wish list is huge. I also agree that many of the example to port well between versions - there are many beta and SL 2/3 pages telling you how best to do something that is built into 4 - or just will not work there. WCF needs to change too to be more accomodating to SL without the semi-hell of policy files and arcane config settings and handlers that should be in the project properties and set up with a click.

Editor's Picks