This is exciting for me because I absolutely love .net and friends, but I'm also a Linux engineer and lean heavily toward open source and cross platform technologies. In recent years I have noted that with the existence of mono and mono develop(xamarin) C#/F# is right on the verge of being an excellent choice for open source tools and projects. I've been lamenting the fact that Microsoft's early platform lock in approach has prevented .net from being a serious java alternative(or the alternative it deserves to be). Its nature stiffling the open source ecosysytem .
The outlook has been getting rosier over the past 2 years though. Now we have OWIN, ASP.NET vNext, MVC6, entity framework 7, F#, and a strange officially unofficial interest in mono. Projects on github! These are welcome steps in an attempt to boost relevancy IMHO.
ASP.NET WinForms are just as obsolete in my book. I programmed dozens of applications using it but I would never consider using it today for modern web development.
I still use Microsoft development tools. C# and ASP.NET MVC are great, modern technologies that allow me to make stable and scalable web applications very rapidly. The modern versions of Visual Studio fulfill all the things you said you liked about VB6 and are otherwise incomparably superior.
VB.net and C# (and F#) are free [legal] downloads from the internet and both just as capable as VB6 was back in the day (the things Visual Studio Pro and above add aren't really relevant to beginners, except the testing framework perhaps).
Plus back in the day I found VB 6 quite limiting. For 101 level stuff it is plenty fine, but once you want to go beyond simple applications (e.g. games) you're left almost fighting the language and libraries itself.
With C# in particular, while it is certainly slower than Go/C/C++/D/etc, that's really the only major limitation. You can definitely access much more of Windows' API infrastructure, it supports unsafe code, the .Net framework is more comprehensive, and the language features are extremely modern (F# more so). There really is no limits except execution speed.
Honestly kids today are extremely lucky. I would have killed to be learning on C# back in my day. Fuck VB 6.
I wish someone would build a robust OS & GUI toolkit and ship it with developer tools...
QML is basically a Javascript-based declarative language for building user interfaces in which you can use full Javascript to augment them. It has its own IDE (Qt Creator) with a visual designer and it's pretty easy to learn, and Javascript is not a hard language at all for newbies. You can even use C++ to extend your applications. KDE 5 is not ready yet, but Qt5 is mature and improving with every release.
I would recommend that combination to a young aspiring programmer without a doubt.
I think that's the web. The development that used to happen in VB6 & Delphi simply has migrated there, desktop apps from that segment are dead.
Of course, VB programmers may look down on Excel the same way lots of other programmers looked down on VB.
If you did things properly (MVP! remember that?) it was quite maintainable. I still know of several VB apps still in service.
But maybe it's still not simple enough. Also, Object Pascal is probably harder to learn than VB6, esp for a beginner.
I also started mostly with VB6 and still somewhat miss it... Nowadays I mostly use C++ and Python on Linux or MacOSX and have tried many many other languages in the meanwhile. But I still miss VB6 somehow.
I agree it isn't a great way to develop for the web, as in embracing web tech, but it's a very convenient way to make forms. Even having your controls keep state (the terrible viewstate) is quite convenient.
If you approach a lot of those places and show them something like AngularJS they'll be like "where are all of the high-level tags and rich components that I can just drag and drop"? And then you'll realize that you're not actually in the ghetto.
There's a reason that webforms didn't die when Microsoft introduced MVC, but instead they started bringing MVC features into webforms because so many people use it.
It's probably for the best though - the code we wrote is almost certainly quite ugly and hacky, and I could certainly write the same programs much better today.
VB6 offered none of this.
And yet there is no currently properly supported way to write desktop applications for Windows! MFC = obsolete, WinForms = maintenance mode, WPF = Dead on arrival, WinRT = Metro only.
For all the people saying "web is where it's at", there are some things that are simply still best done on desktop. And native development in iOS and Android is still going strong.
I was just reading something about the subject here http://pragmateek.com/is-wpf-dead-the-present-and-future-of-...
MFC is OK if you can accept its crufty old flavor of C++. But it wouldn't allow for much sharing of code between Windows desktop apps and modern (Metro) apps, whereas a .NET-based solution would let you share non-GUI code easily.
WPF was developed for a relatively short period of time, starting in the early 2000s, and then basically abandoned. Windows Forms may not be much older than WPF, and both are apparently now in maintenance mode, but Windows Forms has the advantage of being based on the Windows API and common controls, which have been developed since Windows 1.0 in 1985. WPF was all new technology; it used the older Windows APIs only as much as it had to. So Windows Forms is based on the tried and true foundation for Windows GUIs.
This is a bit fuzzy, but it seems to me that WPF reflects the rich-client excesses of its time. In the early to mid 2000s, Microsoft and Sun (with Java/Swing) were trying very hard to be better than web apps. For Microsoft with WPF, this meant building the whole framework on a very advanced graphics subsystem, the then-cutting-edge Direct3D 9. I dare say they didn't care much about running well on older or less capable hardware; they just wanted to take full advantage of what the latest hardware could offer. By contrast, the Windows GDI and USER subsystems were designed to run on primitive raster graphics hardware, so Windows Forms apps benefit from the relatively low system requirements.
Now I'd like to present a case study in how the excesses of WPF resulted in a less than satisfactory user experience for a niche application where WPF's advanced graphics capabilities were almost certainly unnecessary. My brother is a Christian minister. About three years ago at Christmas time, while he was still a seminary student, he told me about how his then-current laptop wasn't serving him well any more. Among other things, he mentioned that the Logos Bible study software he used wasn't running efficiently, and that for reasons unknown to him, Logos was unusually demanding when it comes to graphics hardware. This seemed anomalous at the time; a program like Logos is little more than a text viewer and editor. I didn't dig into that at the time, though; I just bought him a new laptop.
You can guess where this is going. Tonight, during my wandering about the Web, I happened to find out that starting with version 4, Logos was based on WPF. I made the connection with the conversation from three years ago, and confirmed that the excessive demands on graphics hardware were really an issue. See, for example, this forum thread from 2009:
http://community.logos.com/forums/t/6200.aspx
I feel bad for the users who had to take time out from their real work to post on a forum like this about technical minutiae like video card specs. At least one user justifiably questioned why a text-based research program like Logos would require a cutting-edge video card. We who develop end-user-facing software should take this as a lesson in how not to make our users happy, by prioritizing developer convenience and/or gratuitous use of cutting-edge technology over delivering a good user experience on the hardware that users actually have.
The problem was the high-level mesaging from Microsoft. They weren't about desktop anymore, apparently, but that's exactly where I make money being a Windows software developer. They were now mobile. They were Metro-shmetro. They wanted to leave behind everyhting that helped me make living by writing Windows apps and move on to conquer new domains. They neglected me and my interests. But I can say that I like how things are changing now. They put Start button back. They appear to be opening Windows Store to non-Metro apps. Good, excellent, they are on the right track... that's assuming they don't screw the hell out of Windows 10 with their Asimov telemtry bullshit, but it's an altogether different issue. At least they are paying a bit more attention to what people actually want instead of what Microsoft thinks they should be wanting.
But that is just an impression, an interpretation, and probably a false one, no? I and lots of people I work with never treated it as such but rather like 'we also do touch&mobile now, next to the good old desktop'. That is what Windows 8/8.1 is for us and our customers: in essence Windows 7 + Metro. And it didn't affect the way we write our desktop software in any way. Except in practice that we have to press Win+D after login, not exactly a major overhaul.
On a sidenote: to us the fuzz over the start button is just a media-driven thing coming from people stuck in the point-and-click age of XP and earlier. Anyone doing serious computer work should be using keyboard shortcuts anyway. And hence wouldn't have any problems adapting to the lack of a point-and-click button when the 'Win key + start typing what you're looking for' does exacty te same, and has been doing that for quite some time.
Indeed, Ballmer seemed to have no intention of leaving when he announced a
massive reorganization of the entire company in July 2013. Behind the scenes
he had also begun negotiating an acquisition that was meant to transform
Microsoft. He had become convinced that the company had to make hardware
too. The reason why goes back to his chart. The two companies which have
seen the greatest increases in the share of profits they take are Apple and
Samsung, particularly Apple, whose share of the technology industry’s
profits leapt from 7 percent in 2008 to 21 percent in 2013. To Ballmer, the
message was clear, and so, in December 2012, he began talking to the Finnish
smartphone-maker, Nokia, whose C.E.O., Stephen Elop, had worked at
Microsoft. There was a defensive reason for the deal as well as an offensive
one. Nokia was pretty much the only company left that was making Windows
phones. If Nokia went under, what would happen to Microsoft’s phone business?
Apple and Samsung's phone businesses are entirely different. Apple is selling ios to the high and middle end market. Samsung is getting devoured from the bottom, because there is very little difference between android oems, whereas Apple doesn't need (or want!) the bottom. It's pretty amazing that someone like Ballmer wouldn't see that coming, given that Xiaomi and the other chinese competitors are running a classic competitive playbook on Samsung.Stratechery has written about this at length, though I don't recall if it was clearly discussed in a single article or my mental synthesis from a collection. Either way, differentiated companies -- apple -- require completely different strategies than nondifferentiated -- samsung.
Intangibly, it's the attitude that permeated the company that said "we are right because we are Microsoft." There were few people you could talk to who'd think you had anything to offer someone who worked at Microsoft. You still see this today around products like Bing, IE, Xbox and Azure (I know the last 2 are popular, but the xbox has been a loss leader (and what it's leading too isn't clear yet) and Azure, like everyone else, is being crushed by Amazon (it really is, they spend a ton more money and get a fraction of the market (that's Bing-style success!))
I remember a story from the only time I was on their campus. An employee (I remember his name) was telling me how they wanted to make IIS great, so they hired an expert Apache consultant to learn more about apache. I'm listening, thinking "wow, this is great, they're really interested in bettering themselves." He then proudly went on to tell me how the Apache expert had an amusingly outdated understanding of IIS and by the end of the gig they'd convinced him of how great IIS was. They'd literally rather pay people to tell them how great they are, then admit they might have something to learn.
This perfectly encapsulated my time as a .NET developer. Lucky this was at the start of an MVP conference, so I took the hint, skipped most of the conference and visited Seattle (oh, but I did attend 1 talk where the speaker said Visual Studio would add a color picker and people applauded him).
They know there are things like iPhones and Android devices, but they appear truly baffled that anyone would want one. They think it's some kind of conspiratory rebellion, that the world uses those out of spite for Microsoft.
How is Apple differentiated? To a user that wants a smartphone to send emails, visit websites, play fantasy football, take pictures, etc, Apple is every bit in competition with Xiaomi as Samsung is. To many, many users, smartphones are effectively a commodity now.
Which is why Apple devices feature some of the best screens, the best cameras, the best processors. Any illusions that Apple isn't fighting the competitive fight, and hard, is just contrived nonsense. They are fighting damn hard to make a compelling case for their devices, and doing a good job at it.
whereas Apple doesn't need (or want!) the bottom
Apple still makes and sells the iPhone 4S, a three year old device. You can get this in the $200-ish range. Further most of Apple's pricing has been contingent upon the scam that are cell phone contracts, where right now you can get the iPhone 5, for instance, for "$0". That is, by most definitions, the "low end".
Furthermore, the virgin mobile link you gave is for no contract - but locked phone. While it's not comparable to $200-with-a-2-year-contract, it is also not comparable to an unlocked phone.
No, the consumers on the real low end of the cell phone market can't afford or can't get approved to have a contract. Most phone makers chase this market in some way, Apple doesn't.
Don't forget marketing. I don't think anyone plays the marketing game better than Apple. They are essentially marketing themselves as different and the fact that it works is nothing short of miraculous in the face of actuality!
Hilarious. It wasn't the lack of an A-team resource on browsers, it was the lack of any team. Microsoft just left browsers there and did nothing.
Microsoft's other big sin is counting on its hardware partners. They could have preempted the iPod, for instance, but they just hoped Creative and others would deliver a great experience, while they sat back and wrote the software and cashed in on licenses. Same for tablets. Tablet PCs were great in the 00s, and I loved using them. Except, they were clunky and had little mass appeal. Once again, MS just counted on its partners and never gave a thought to the full experience.
Also, the fact that Windows still is touch/pen unfriendly outside of Metro just shows they Don't Get It. Instead of working on some tech to make Windows work well across all its apps, they ditch everything and hope Metro will work. It's hard to imagine that anyone could be so myopic.
Yes, but wasn't that intentional? Once IE4, then 6, had conquered the world, the point was to keep people from leaving Windows for the Web, and so IE dev was stopped dead.
Or they could have some sort of gesture that lets me go into a high accuracy mode. Or really, anything at all to make it easy to deal with. But nope, your finger becomes the new cursor and that's that.
A touch UI needs large hit zones, benefits from natural drag/scroll, has only one kind of click but can have multiple touchpoints.
A pointer UI can use very compact and precise interaction areas (text selection is a great example), right- and option-clicks and has very old conventions for drag and scroll.
Saying that Windows is touch unfriendly is missing the point of it being very pointer friendly.
Apple is slowly bringing the two paradigms closer, and people complain at each step.
"The holy grail for Microsoft would be getting developers to write new software for Windows again ", this necessarily isn't true. The developer go where users and money are. And users not necessarily go to devices which have lot of apps. This might sound like a chicken and egg problem, but look at amazon, if developers are writing software for its devices, Amazon is bootstrapping its devices with software. I take out the other devices, the desktop and servers, might not have as much impact as it may sound.
Second, Xbox, Bing, may sound looser, but they may be interesting in the next round of battle. The smart phone battle is more or less is over and it is not going to make much difference, but the future of the smart device fields will be another story, if only MS can concentrate on the future in coherent way.
Not unexpected given the date and the relationship between Apple and Microsoft at the time, but interesting that it shares the desk (albeit off in a corner) with the IBM-PC.
More accurately, there is probably a Mac here because they were building Office for it.
I'm constantly amazed that all these "experts" haven't figured out what happened to the 800 pound gorilla. Quite simply put, other gardens that people could live with and easier to access suddenly showed up. The vendors making and selling their wares went to the place people were at or wanted to go to. Its simple economics and you can point directly to the people who decided that WGA was a good idea for killing MS. Piracy itself is what made windows dominant to begin with.
All of which are on quite shaky grounds with competition eating at them. MS know they can't keep these cash cows forever.
On the other hand, parasitic income that MS gets is just crazy huge: http://arstechnica.com/tech-policy/2014/10/lawsuit-reveals-s...
And this attitude doesn't seem to change, despite some cosmetic shifts like more usage of open source.
Such kind of companies better fall into irrelevance sooner than later. We need real innovators, not humongous parasites.
As for Microsoft: the adage goes that success has many fathers. Failure has even more. It would have been nothing short of amazing if Microsoft was as dominant now as it was in the early days of PCs.
Profound question...
One thing I hold bitterly against Microsoft is their abuse of monopoly. During the time they were kings of technology, there was little progress in Browser market, OS market, both PCs and phones. But I believe Microsoft has learnt their lesson, and under Nadella, the company is going to take the community along with it.
http://www.vanityfair.com/business/2014/11/satya-nadella-bil...
- I can't read the article because some as keeps jumping me back to the top of the page a few seconds after I scroll
- the article font is tiny and hard to read anyway
- for some reason even though there is a large body of text, ios doesn't allow me to use reader mode
I had zero problems reading the print version.
I wish pretty much every damned site in existence rendered as on Readability.
Yeah, my partially completed blog platform (who doesn't have one of those somewhere) uses pretty much exactly that design.
None of this "Everybody has a 2048 pixel wide monitor to view my 4 huge columns in" (I used divs instead of tables, so it's OK that it takes 2 K pixels to render, right? Right?)
Unfortunately, it is also has some extremely negative associations, most of which have been earned and even, perhaps, proven.
* unfair and sometimes illegal business practices
* sabotage of innovative technologies when they conflict with Microsoft's monopolies
* eugenics
* empire
* surveillance state (Skype/NSA)
Yes, it is "drunk or high or Alex Jones"-level idiocy. It is, in fact, fractally stupid: Believing it requires you believe multiple other things, each of which is just as dumb as the whole. For example, it requires you to believe the following things are evil: GMOs in general, vaccines, and wanting to reduce the world's population.