views:

114

answers:

3

Hi, I`m C# .Net developer.
First of all I want to emphasize: I do not want any holy-war appear in this topic, please

I think, I'm a little bored of .net. Now, I'm seeing there many things, that I do not want to see in a language, I've caught feeling, that nowadays C# is obsolete, and I (and other developers) need to have something more intelligent and cool. Maybe this feeling is caused by a market-situation, and I want to be more google-like, not microsoft-like. But anyway, I do not want to learn C++ or Java, I`ll try to describe why.

I have a experience in C# almost 4 years, and love its simpleness and clearness. I think that's the most important thing, that should be in a language. Code should be clear, easy to read, and easy to find. I'm using resharper, all Visual Studio fast hot-keys, for fast searching threw code, fast refactoring, I'm trying to follow all laws of writing good C# code, and I'm understanding, why I'm doing this.

But this is a time for changes, I think.

So:

  1. I need language, using that I could write clear, easy to read code. It should have some refactoring tools, and good IDE, or it should be as simple, so IDE could be created in a near future :) Thats why I threw away C++
  2. I need lang, that are has too many libs, that are doing almost the same. I mean Java. And, certainly, it is almost the same as C#, with its minuses
  3. I'm looking around OOP paradigm. It's not the best thing, that should lang have, so It should support functional paradigm, and others. And maybe I'm waiting and believing in a tale, that there is existing some paradigm, that are better than OOP, so I'll consider any non-OOP languages as well. Edit: I've thought for a while, and decided that I should not stop on OOP only. Let`s consider any paradigm
  4. I'm using Windows. I'm not afraid of Linux, and will use it to, if I'll have the opportunity, but Windows should be supported better than Linux. And as for me, IDE should be good there.
  5. It should be popular, or could be able to be popular in the next year or two) You know, this means general lang, not only-mobile for example, cool enough to be popular, and oth.

And I want to ask clever people, in what direction I need to look? It could be already existing and popular language, and even only language, that are developing for now (last one would be great)

Now I`m looking on a Ruby, Python, Haskel, F#. I think Haskel (and maybe F#, I'm not sure for now) are not thing that I'm searching for - they are a narrow, most used in a economics, and mathematics, and bad choice for creating desktop apps, or web apps.

For moders: Please, do not kill this topics as doubled. I know that questions like "What should I learn next?" are popular here, I read that topics. I'm searching something more concrete, something very intelligent and cool. This is a dream) I know that I'm exacting and fastidious. But this question is a little more than the others - I need something big and cool, and I even imagine this, but it's really difficult to describe it. Most of answers of that topics, are not answering my question

Be welcome to propose any your ideas, thanks for reading this big text.

Best regards, Iurii

A: 

For web / desktop developers I suspect the future holds a hybrid of Java and C++.

C++ being a standardized Go To language for any application, while Java being the Go To for web development, they both have things in common while weighing up most of each others flaws.

It's not exactly uncommon to see hybrid applications today either, but they're still just mixed. So it'd make sense to blend those into.. CJ++ ? That meaning a new language based on C++ and Java, not just the two thrown at eachother and scraped into a bucket.

Meke
No, there are much more languages, that has cool features, and C++ and J have not them. In a some way C++ and Java is the same, cant quite understand what gives us theirs combination
Archeg
+2  A: 

I think one trend could be to implicit static typing.

It's hard to automatically refactor and check dynamically typed code. But on the other hand it typically requires less boilerplate code. And quite often dynamically typed languages offer an interactive prompt.

Implicit static typing offers some of the advantages of both paradigms. It's common in functional languages such as haskell or F#. But there are some new languages in particular google go or boo which use implicit static typing, but are more imperative.

CodeInChaos
Yes, and I prefer statically typed. Honestly, never tried dynamically typed. But I think - it will raise bug rate. Certainly, high qualified specialist, will not write such buggy code, but he will spent much time on checking it.
Archeg
+2  A: 

Google Go is quite an interesting language, small, clean, simple yet powerful. My subjective peeve is the lack of generics, but they are thinking about adding them. Backed by Google, so most probably has a bright future ahead. Cave: Not production quality yet, especially the Windows port...

Another of my personal favourites is Scheme, especially with a compiler that supports the more important SRFI's (== de-facto-standard-libraries in the Scheme world), but when it comes to wide spread popularity, you'll find it somewhat lacking.

If you are looking for personal enlightenment, have a look as Haskell. Then, after abandoning it, have another look. Then another. Some day it will just "click", and you'll ask yourself why you ever used other languages in the first place. Be warned, however: As soon as you think in Haskell, all other languages seem dull and boring in comparison (this warning is valid for Scheme too, btw).

I do have to ask however, why do you find C# lacking in features? Lambdas, closures, (very basic) type inference, (basic) TCO... packed into a statically typed language that just got support for (basic) dynamic features, all with a free IDE. What exactly do you miss? Personally, I'd add macros and the ability to see code as data and vice versa... but then I'd just end up with Scheme anyway :)

lbruder
I want in C# much of functional programming. Lambda is just an imitation. Many minor things, C# is not ideal. I mean, if somebody will create a language, like combining all other languages in the world with a proper proportion - it will be much cooler, that C#. And if exists something, that more near to it - I should learn it)
Archeg