Software Development

Poll: Can alternative languages be successful in .NET?

Some shops are using languages other than VB.NET and C# for .NET work, but the less-mainstream alternatives still lag behind similar programming languages. Do you think alternative languages can be successful in .NET?

I've written several TechRepublic posts about using IronRuby, and I've looked at F#, but I wonder if these languages have a future in the long term. For better or for worse, C# and VB.NET provide enough power for developers to take care of business, and it is pretty rare that they cannot be used to get the job done.

While some shops are adopting some of the less-mainstream .NET languages, they seem to be lagging behind similar programming languages such as Scala and JRuby on the Java platform. Do you think these programming languages can be successful in the .NET ecosystem? (Please note: I'm not asking if the languages will be successful in the .NET ecosystem.) Let us know why or why not in the discussion.

J.Ja

About

Justin James is the Lead Architect for Conigent.

12 comments
Tony Hopkinson
Tony Hopkinson

It's not a huge part of the need, but it describes that aspect of what we want to do far more efficiently than C# would. If you code requires way too much scaffolding, if the intent is being obscured by the language, and there's another .net language that could describe the problem better. It would be both rude and foolish not to.

rwidegren
rwidegren

There is always a new language that has a new functionality or better speed than the old standards but whether they're successful, as Jaqui said, is all about whether enough developers adopt them. The problem with using a new language is being able to maintain the code in the future. I???d define the success of a language as being able to find a developer five years from now who knows the language well enough to maintain the applications that were written in it today.

gak
gak

Iron Ruby and Python must be there and in use in 5 - 10 years since they have enough following outside .NET. Java will be there, jRuby and jPython will be there, and this alone guarantees that Irons will never be killed completely. F# is functional and can be either compiled or executed as a script. For those who have no strong need in Ruby or Python frameworks or libraries, F# makes both Iron Python and Ruby optional. More so with upcoming compiler service for .NET. F# is fully MS controlled and I agree MS may kill it anytime out of the usual MS irrationality (faction struggle?), but my guess is that it will not happen.

techakadarsh
techakadarsh

Hey its about the marketing strategy of the technology / language how to work it for the customer, if more the popularity for a language the more the use of it makes it simple for the user/customer.

Sterling chip Camden
Sterling chip Camden

One of my clients, Synergex, is betting a lot of man years on adoption of their Synergy/DE language and tools on the .NET platform. Hey Justin, maybe you could cover that language sometime. I'm probably too close to it to be impartial.

Mark Miller
Mark Miller

It seems to me, looking at software history, that the languages that really take off in the industry are those that have found a niche in something that industry really values. In the 1990s, Java became a hot platform, because it provided an extra layer of encapsulation, and more opportunities for abstraction, looked like C++, but didn't have the memory leak and system-crashing issues that C++ had, and it was internet-ready, which few other languages were at the time, and it was hyped heavily by Sun. C++ became popular in the 90s as well (though not nearly as popular as VB), first because Microsoft promoted it for desktop apps., and COM, and system development, and for some of the same structural reasons as Java, but it had the advantage of being faster. C++ had a niche on Windows, because you could do some things in it that you could not do in VB. It was used for web app. development in the late 90s, in combination with Perl. C became popular in the early 90s because it offered productivity over assembly language, with a similar level of power, while still being faster than other languages. Plus, it became the de facto standard language for system development, I think because of Unix. The thing about .Net, at least I think this is still the case, is it's difficult for any language to gain an advantage. Each one has its plus points, but I don't think you get a speed advantage with using any of them, since they all compile down to the same bytecode (the same could be said for the languages written in Java). There can be productivity advantages, I think, with more succinct expression, and more powerful structures and operations being at the disposal of the programmer. The only .Net language I've seen that uniquely gives you more power is Managed C++, because of its ability to seamlessly integrate native code, but from what I saw several years ago, hardly anyone was using it. I haven't looked at IronRuby, or F#. I've read up on F# a little. What I remember from the time when I developed for .Net was that there were times when I wished I could've done a piece of an app. in, say, a functional language, where I could transition out of C# and into Lisp, for example, just for a small piece of it, because I thought there were some problems that it could uniquely solve more productively than doing it in C#. The mentality of the development community has a lot to do with acceptance. In the Java community I think there is more of a sense of choosing something for its technical merit, and they're not afraid of learning sophisticated computing concepts to access the advantages of the technology, though a lot of consideration is given to industry support, in terms of libraries/frameworks. In the .Net community, it seems to me there's a lot of emphasis on "ease of use," both in terms of the language being easy to understand, and in terms of the available functionality and documentation for it. I just remember that when the first version of .Net came out, it was pretty easy to see that C# was going to win out over VB. Microsoft was mentioning it a lot. All of the early documentation and example code they were putting out was in C#. VB developers were having a fit with Microsoft over how they designed VB.Net. I think that's settled down from the design perspective, but I don't know if the popularity rates have evened out, or gone back to the "old norm" of VB being the most popular. I think the only thing that would grab developer interest for these languages on the .Net platform is if there was something like Ruby on Rails for them, by which I mean there's some "killer API" that only runs on that language, and which significantly boosts developer productivity without sacrificing application speed by much. Another barrier is developer understanding, by which I mean understanding the power of OO and FP. This can be a barrier to accessing the language in which these more powerful APIs might be built, in addition to just making something in a way that makes the transition to these languages worthwhile. Microsoft has had a history of putting greater power into its software and tools without guiding their users into first noticing that it exists, and then showing how people can use those features in powerful ways, making the effort to put them there largely moot. If they'd bother to offer a little sophisticated CS education in a way that developers could understand (which I think they could do. I think Microsoft has the communication skills for it), then maybe more developers would get interested. Edit: I took out a comment about "support from Microsoft" for these languages, in light of Justin's comment on this.

Jaqui
Jaqui

any language has to potential to be successful, if there are enough developers using it. it will take some hype for .NET support by the language project(s) to get developers using it in order for that to happen.

pyromosh
pyromosh

You wrote: "Do you think these programming languages can be successful in the .NET ecosystem? (Please note: I???m not asking if the languages will be successful in the .NET ecosystem.)" So you want to know if they CAN be successful, not if they WILL be successful? Even assuming I am parsing your question correctly, it still leaves open the question of what you mean by "successful". Does one single person or company writing an application that goes into a production environment make an alternative language "successful"? Or are we using some kind of market share benchmark?

Justin James
Justin James

Chip - Been meaning to look at it anyways, thanks for the reminder! J.Ja

Fravio
Fravio

Man, you really need an upgrade on .net concerns.

Justin James
Justin James

Yes, that's what I'm asking... "can" be. As in, "can" they survive and thrive. Success is your own personal opinion. At this point, I'd consider "success" to be "still around in 5 years". Microsoft has slashed support for IronRuby and IronPython, and it will be interesting to see if they are still being used in a few years. :( J.Ja

Editor's Picks