"Restrain thou thy equine quadrupeds."
Editor's Note: Verity Stob's Chronicles of Delphi [King James ed.] began in 1996. The most recent translations can be found here: The Sons of Kahn and the Pascal spring and here: Sons of Kahn: The Apocrypha. Zany adventures with Zarco and Marco And the users of Delphi had become old with the passage of years, and had taken …
We didn't upgrade from XE2 to XE3 despite some serious prompting from Embarcadero's sales guys. Something felt wrong. Now I know what they weren't telling us and feel we dodged a bullet....
I have put my german-language skills to good use today (I acquired them AFTER the hegemonistic outreach but BEFORE the Euro crisis) and acquired the 2013/01 edition of iX Magazin (2013? A ridiculous date; sounds like the far future of some Hollywood flick). This is a special issue about "Programming today". So what Programming Languages are being named?
The JVM Series: Scala, Groovy, Clojure; also JRuby, Ceylon and Kotlin. Related: JavaFx apparently is trending.
The C/C++ Series: C++11, D (detrending) - and remotely, Go
C# isn't even being mentioned. Maybe there is something about it on the included CD.
Eadon tells lies about C#.
Dead? Deserted? Abandoned? Or expanded, enhanced and built in to MS's latest operating systems as a fundamental piece which (with .NET 4.0) physically cannot be uninstalled or removed without trashing the OS
Eadon. You liar. The only problem is that your lies are always so stupid - nobody with a brain would ever think about believing them.
physically cannot be uninstalled or removed without trashing the OS
AMOF, very little can be uninstalled or removed without trashing this very OS, that is a huge disadvantage contradicting the modularity principle of IT. (I wonder, what you can actually uninstall from those infamous 12GB of WIn8 RT bloat, for that matter)
This is one of many reason why this OS is not as scalable and portable as it might and would be otherwise.
It was a good rip off of Java and far better than the abomination called vb.net, which has 666 on its forehead. VB6 was the last real VB
I have a Modula-2 compiler released when NT3.5 was young. It still compiles and runs native W32 applications on XP, I used to write DLLs in it and call them from VB6 and C++, as writing GUI code without a visual IDE is like loading MS Office via binary and toggle switches instead of reading a disk file. I really feel for the Tribe of Delphi. We do seem to be going backwards.
"C# was a rip off of Java anyway"
Except that... it wasn't. Sure, there are a lot of similarities to is, but that's like saying Java is a rip off of C++.
C# has many influences in it (including Java), but it also had things like autoboxing, "foreach" iteration, and generics long before Java (no thanks to Oracle).
On top of that, it has many features that Java still lacks entirely, then ot least of which is a well-defined Date/Time API.
I'm a Java, C#, and C++ developer. Each language has strong and weak areas (productivity, expert cost, and maintainability included), but saying C# ripped anything off is doing a massive disservice to the team that designed it.
Also, you can call C# a dead language as much as you want, but check the job listings for greenfield projects. Maybe London is unique in the world, but I have more work requests for my team doing C# than any other language.
Ignoring that you've gone from "C# is a rip off of Java" to ".NET [...], just like Java" (which isn't the same thing):
So you also believe that Java rips off UCSD Pascal, since that uses a VM for each process? Or that C++ rips off C?
I completely agree that C# is an evolution of Java (which is being strangled to death by Oracle), but Anders thingamy (could look it up) was a major Pascal/Delphi guy, and there's a lot of those languages in (ignoring syntax) C# and .NET as a whole.
Also, check out NGEN, which does compile .NET to a "native binary".
Wow could you be more full of it?
C# is fundamental to the Win8 and beyond environment as the language of choice in enterprise for delivering applications quickly and to defined standards.
All that open source bloat is just plain crap, you need 400 dependencies to fire up a basic console app.
I dare not try anything serious on php because every code sample I ever read written in it seems to have no understanding of the concept "team" or "standard" or "maintainable".
Using something like MVC with C# blows that crap completely away.
I think the reason put rubbish like this on public forums is to knock what Microsoft has achieved with windows 8, server 2012, and windows phone 8 ... a unified platform across all devices that all speak the same language and just work.
The toolset comes as part of the product stack and again it just works!
To install you simply setup the framework and visual studio and you are done, none of the chasing around for some botched third party component that you have to compile yourself that ultimately has only been tested to work if you have special other component installed which isn't compatible with something else you need.
It's about time open source users got off their high horse and learnt what "productivity" means!
>I think the reason put rubbish like this on public forums is
I think it's because young PFY learns PHP and JS and thinks he's a good programmer. He bases his self worth on the fact that he is a good programmer. Any other language that is more complicated tarnishes that illusion, so young PFY feels the need to bash anything he doesn't know to preserve his illusion.
See comparison between JS being the "assembler" of the web.
I work for a multinational corporation that has teams delivering solutions on both .Net and Java platforms.
When it comes down to it the CTO agrees with the following:
The .Net teams are faster to react to any given business problem and more often than the java team are able to find a solution that meets the business requirements in a shorter time frame.
The solution provided by .Net is easy to provision for at the infrastructural / systems level because other than installing IIS and .Net very little else is needed (these are often scripted deploys too).
The Java equivilent usually results in this "rabbit hole effect" of dependency digging which takes time to both diagnose and remedy, often this time is considered an acceptable loss because the solution being delivered is required "for legacy purposes".
I've seen this time and time again, products built on languages like delphi, php, and sometimes java are referred to as "legacy" because it so much time to build an effectively good solution on these platforms that the product is practically out of date upon release.
I am a software developer and I have developed solution on both .Net and Java platforms ... I prefer .Net (which i'm guessing you already figured out), I think that at the end of the day though it comes down to what you want to achieve.
If you want business applications that deliver business logic / processes and you need them fast that will out of the box definately work with everything in your IT environment .Net is the best choice for many reasons ...
1. the licencing costs are already covered by your server licencing agreement.
2. it will definately work with your existing windows based network (most businesses today are running windows)
3. its fast and fully supported by the same company that's supports your server (convenience)
If you are building drivers / firmware, then it makes sense to use something lower level because you need to in order to achieve your goals. This is the sort of thing that .Net is not designed to do (but can - from what I understand windows is written in C#).
It's a simple fact, .Net is seen as the "quick and cost effective solution" for business applications.
And this is exactly why C# is far from dead ... it's too core to the Microsoft technology stack.
Although i agree that Silverlight was a complete balls up by Microsoft, but Silverlight is not C#.
@Eadon and others
I think the English language is a rip-off. It clearly re-uses words, expressions and even letters used in other languages. French is so much better suited for everything.
Everybody - sjeez. Use a language for what it's most suitable for. Yes, i'm sure i can write an RDBMS in Turbo Pascal using text files as storage. But because I can, should I?
What does it matter what a particular programming language was based on? The writers/creators of that language saw that there was a problem with other programming languages, analyzed the issues, and came up with a new language that would hopefully solve those issues.
Nobody forced you to use that language. Others looked at the language, determined the merits of using it, and started using it.
If you don't agree (and some of you do, in a very childish way, i might add) what this language is good for - good for you. But at the very least don't use blanket statements such as 'this stinks', 'it's a toy', 'it's dead', etc.
Sjeez, next time someone is going to tell everybody that Linux is much better than Windows (or Windoze, Window$, as the younger crowd here seems to be doing again). Or the other way around.
Now, get off my lawn!
Obviously dependencies are less of a problem in the .Net world than in Java: there's not much to depend on in .Net, you either buy a packaged, paid-for solution, of which there aren't nearly as many for .Net as there are free solutions for Java, or invent your own wheels.
OTOH, you obviously don't know your tools if dependency management is an issue in Java. Maven was invented a long time ago, is already well known and widely used, and completely solves the dependencies problem, including version management for dependencies, and also deployment, if need be.
The typical workflow, as I know it, for .Net devs, is to manually build an installer from their local workstations, then run it on the target machine (or let admins run it). That's completely unprofessional in an enterprise environment. What's professional is to set up your project on jenkins and let jenkins handle the deployment in case of a successful build and test run. When you do it this way, it's not just dependency management that you get rid of, it's the actual deployment too. But of course, you need professionals to work with a professional system, and MS did everything in its power over the last 2-3 decades to de-professionalize the programming world.
Right now, I'd say both Java and C# are in a tight spot, but C# more so than Java. While Oracle does anything in its power to transform Java into something else, it cannot - there are the older Java licenses, which make Java open for reimplementation for anybody respecting some simple rules, there is at least one comprehensive and to a wide extent perfectly compatible open source implementation of the platform, there are thousands, or more likely millions of companies using Java and contributing more or less to the open source ecosystem around it, and Oracle simply cannot change this. By contrast, MS was always the one single main source of direction for anything Windows. If it could afford to almost kill COM, it will probably be able to do the same with .Net. There's nothing to stand against MS's will, in the MS ecosystem.
"But of course, you need professionals to work with a professional system, and MS did everything in its power over the last 2-3 decades to de-professionalize the programming world."
As someone who moved through C++, Java, and into .NET, I actually agree with you.
I have a real problem trying to hire people who know/care what .NET is and how the CLR works, even at a high level.
A GC is not some black magic that you should assume will do its job correctly, nor is the JIT. You need some understanding of what happens at run time in order to understand what tools are suited to what tasks. /rant
That aside, anyone who "manually builds an installer from their local workstations" is in the wrong role or has their hands tied by a manager who is in the wrong role (I've been there).
.NET has had brilliant CI and packaging tools for a long time (my current personal favourite being TeamCity), as well as NuGet, which can save hours, in the right hands.
That would be true, except for just one thing: you're an idiot. C# is what Java should always have been: whereas Java is a bloated kludge of a language with only half a proper object model, C# is a real language which, fortunately, won't run on computers whose operating systems were developed in 1969 and which live entirely on shareware and hippy juice. My evidence for this is that (a) I'm smarter than you, and (b) I've been programming for longer than you. Oh, and (c) that I make more money at it than you.
Yup, that produced a fair old chuckle.. Borland was also the company that managed to recompile Windows to make it run a heck of a lot faster than the Microsoft version, and - best of all - they came up with "licensing as a book". The latter was far too sensible to catch on in the Microsoft world (although, it intrigues me that many iOS and OSX apps are actually licensed that way, when provided through the App Store it's actually the default).
Muchos gracias, Mrs Stob - that brought good memories :)
I said goodbye to Delphi, my first serious love, when D7 was released. There were many ups and downs and the code was beautiful, but the problems were ugly.
Like a spouse of an "ex" alcoholic I had hoped the sequestering into the land of embarcadodo would have healed it's soul. Alas that was not to be.
Delphi: I've is permenantly turned my back upon you. So long and thanks for all the fish.
I used and liked Delphi a lot in the day, from 16-bit Delphi 1 (and beta's) through most versions (good and bad) through to about CBuilder 2007 when I finally parted ways with Borland/Inprise/CodeGear./Em... whatever.
Sad thing is that just recently I though of a little program I wanted to write for running on the desktop. Just something that reads a CSV file, does a bit of business logic and writes a report.
Delphi would have my first thing I would have used, as I could bang together a simple UI using a stringgrid and could have churned out a .exe that would run on pretty much on any Windows machine (Win8 RT excluded of course), and run fast.
Now days? Express version of C# would be closest as it would probably run on most Windows machines as these days all(?) would have a reasonably up to date version of .NET. Would be slower to startup and run, and probably take me longer to develop depending on what new horrors MS have inflicted on VS this year.
Python would be my second choice, but not everybody has Python interpreter installed (yes, I have seen packing the interpreter) but even though I like the language, still feels a step backwards to not use an IDE with rich components and integrated debugging.
Surprising really that while web tools are always improving, the desktop development environments don't seem to be improving that much in productivity.
I spent many happy years with Delphi. But the advantage was never the language itself (I happily switched to using curly brackets) but that it all just worked. It spat out a single, highly efficient exe which could be sent off to the customer and would be guaranteed to work. How we laughed at VB with its DLL hell and java with its runtime engine.
Now that Delphi is all .net, it is all about which version of .net is installed, just the same as the other languages. Shame.
Delphi isn't dot net - in fact the Delphi.net compiler was Kylixed (see http://www.theregister.co.uk/2008/05/26/embarcadero_buys_codegear/) in Delphi 2009. However the IDE (Galileo) still uses a mix of Win32 native code and .Net.
This must have seemed like a good idea in 2003. The IDE stability is almost back to Delphi 7 (2002) level now, and my i7 loads in about the same time as my old P4 took for D7!
(Actually I prefer Galileo to older versions, I just wish it was more stable and faster).
The current version (XE3) of supports Win32, Win64 and OSX (via non-native OpenGL based controls)
Urg, abandoning C# for Typescript, as if the web needs another superset for JScript - wasn't coffeescript enough? Most people are using Jquery anywho.
If only MS would see the potential C# has and fully support mono. Java as a language is nowhere near as good but at least I can run the damned thing on arm properly when I need floating point operations.
So... yes, C# is a ripoff of Java, and .NET a ripoff of the Java Runtime Environment. Sorry if you don't like it but it's true. Microsoft found Java a threat (seeing as how it was truly cross-platform) and after they were sued for J++ (a Java version with non-standard extensions added on, violating the Java platform rules...) they worked on C# and .NET. This was SPECIFICALLY so they could make a Java-clone, take the wind out of Java's sails, and claim cross-platformness while in reality tying the .NET user tightly to Windows. NOTE THIS IS NOT A QUALITY JUDGEMENT. I did a little C#/.NET programming, and I found the truly portable parts to be well designed and clean.... (the non-portable parts exposed Win32, which is IMHO an unholy mess. I didn't use them.)
@Ian Yates, "So you also believe that Java rips off UCSD Pascal, since that uses a VM for each process? Or that C++ rips off C?"
Yes and yes. When Java was coming out, it was common knowledge it was using techniques gleaned from UCSD Pascal. And C++ is obviously directly based on C. Microsoft had specific motives to take down Java when they released C# and .NET though.
Regarding C#... well, if you look realistically, Silverlight is abandoned, .NET development is halted. Microsoft originally did not include C# support at all in WinRT, assuming people would use HTML5, and only added it due to developer outcry. I think it's safe to say C# is in "legacy' status now. Sorry if you don't like it, but that's the facts. Just to say it again -- not a quality judgement, I really get the impression it's Microsoft internal politics doing this and I think it's a poor decision. But I guess we'll see a few years down the road if new stuff comes out, or if .NET is just allowed to fade. Desktop? Well, you can still use technologies from like the Windows 3.1 days if you want, I'm sure (non-Metro mode) you'll be able to keep making stuff indefinitely if you want.
Biting the hand that feeds IT © 1998–2019