|
This survey was prompted by a discussion on the pain required to learn a new language and technology. What if, once you learned a technology you could stick to it for everything.
"Everything" is a term where a certain amount of fuzzines is required because doing something as simple as powering a website requires you to work in HTML (either directly or indirectly). Sticking to visual designers with event handlers on the backend to hide the actual HTML/CSS would skirt around this, but then the question effectively becomes "would you give up control in one technology if it meant you could stick to a single language?".
The Entity framework is another example of where allows for SQL in C#.
I'm guessing there are a number of languages that can effectively be considered "use everywhere" languages once include the tools that come with them. Java, C#, Ruby come to mind. The Entity framework in .NET replaces your need to know SQL, and PowerShell in Windows replaces the need for VBScript or shell commands to script the Windows shell. Throw in language converters and there are plenty of options that allow you to be monolinguistic.
But would you want to?
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Chris Maunder wrote: The Entity framework is another example of where allows for SQL in C#.
Which is fine if you don't know SQL (and you use a supported system), but not a good substitute for actual SQL expertise on your team.
P.S. Would it also perform the tasks my CommScript[^] was designed for?
"Use the right tool for the right job." -- Scotty, et al
modified 19-Aug-13 0:24am.
|
|
|
|
|
PIEBALDconsult wrote: Which is fine if you don't know SQL
It's not fine at all to use EF or any other ORM because you don't know how to deal directly with a database.
|
|
|
|
|
Yes. I used "fine" in the dismissive sense.
|
|
|
|
|
In a current scenario, I think almost every project requires at-least 2-3 languages. This inlcudes Web, Desktop and Mobile Apps.
Web: Primary Lanugage (C#, Java, Ruby, PHP), Javascript, HTML/CSS, SQL
Desktop: Primary Language (C#, Java, VB), XAML / Designer Language, SQL
Mobile: Primary Language (C#, Java, Objective C), Server side - Backend Language / Database Interface Language, Graphics Interface / API
Also I don't think there is an alternative of SQL, even if you are using Entity Framework in your Project, someone has to use SQL somewhere. Unless you are using a No-SQL Database which is still a debatable option, because most of the projects are using it for enhancement over SQL-based and not replacement of RDBMS.
And I am comfortable working on the language that does the job done. And if we have an option of a language that fits everywhere, that would be great but I also believe it will slow down the progress of that particular language, it might become bloated (.Net Framework and JDK are good examples).
So I think whatever is going on right now is much better suited.
Microsoft has just forked out Entity Framework, ASP.Net MVC from .Net Framework. and Internet Explorer from Windows, just to develop/update it faster. So if we want to make sa - C#/Java one language fits all then to make it manageable we might have 8-10 forks to deal with, which is very similar to having different language / technology.
|
|
|
|
|
Chris Maunder wrote: But would you want to?
The short answer is, NO!
I don't want a "robot" to write my HTML and I certainly don't want any SQL Generation Tool to touch my queries
|
|
|
|
|
It's not like I don't want my queries generated by a generator... The actual problem is that often the generator does not create the query I'd like to have . The same goes for HTML (look at all those ugly aspx pages out there...)
|
|
|
|
|
True, if it was simply something like a translation wizard - the answer is a definite screamed NO! If you "could" use your favourite interface to make that 1's & 0's junkie understand exactly what you want from it in absolutely all scenarios, and if your favourite is capable of defining the controls & concepts needed in a decently efficient manner (both fast execution as well as quick coding) then by all means, go for it.
But once you start having to force the issue ("I only know C#, therefore I'm going to use EF to translate my stuff into SQL") you're well on your way to a very hot place. To me, someone who's unwilling to learn a new language (or even an old one), to the point where they'd rather use some arb translator instead, does not deserve the term programmer (or even coder).
If it makes sense to go with ASM (e.g. you need to convert your program to work on an embedded system), then simply relying on a translator-compiler (say from Python to C to binary) is already going to give you issues (at best). On the other extreme it makes no sense enforcing your entrenchment in some ASM by getting a (non-existent) ASM to HTML translator so you can use your assembly knowledge to make a web page.
So the fuzziness is where the answer lies, not the question. If good enough, then the answer is obvious. If not good enough then the answer is just as obvious.
Edit: I.e. this poll is nothing more than finding out how many of us are in situations where our favourite is in the "good enough" bracket compared to those who find themselves in a different scenario.
|
|
|
|
|
Such a "use everywhere" language would be a language ideal for building arbitrarily complex languages (from "general purpose" to domain specific) on top of it.
|
|
|
|