As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am an independent consultant and I have developed a product which is liked by my customer that I am trying to port from Java to Delphi. Delphi satisfies couple of my important needs: Native code compilation that gives speed and obfuscation and the language is highly productive as I tried.
Question that I have is:
Would you invest in Delphi, given its turbulent past?
Is there any alternative to Delphi if I want to chose a platform that compiles to native code and is portable to MAC and highly productive?
Does a turbulent past necessarily mean a turbulent future? Look at the current state of Delphi as it has been since Embarcadero took over and evaluate based on that.
Apparently your other choices might be C# .NET with Mono, C++ with a cross-platform GUI library such as wxWidgets or Qt, or Java. But it's a subjective call as to whether one would call those "highly productive".
There's a nice Squidoo article on Cross Platform GUI Programming that will give you some things to consider in your choice, and it lists a few other possibilities.
The latest Delphi XE2 supports cross-platform native development for Windows 32bit and 64bit, Mac OSX 32bit, and iOS with its new FireMonkey framework.
If you don't want to use Delphi, you can use FreePascal (which Delphi uses internally for its iOS support until a native iOS compiler is created).
I would certainly highly recommend using Delphi if you are in consideration of its abilities. Especially with the release of RAD studio XE2, where you can compile 32/64bit/mac/mobile apps, you'll be impressed at the capabilities. I regret to say that I'm not that familiar with many other languages, but I have basically come to be extremely comfortable with Delphi.
If I had to compare it with another language, I'd have to say C#, which Delphi is pretty much the Father language of C#. Delphi is great for pure lower-level programming, whereas C# seems to have an extra layer over it (including .NET). C# is widely used in .NET applications such as websites (ASP.NET), windows forms applications, service applications, etc.
Both Delphi and C# can pretty much do the same thing, but in a different approach (and far different syntax). I'm not sure however if C# can be used on MAC platforms. But Microsoft Visual Studio is the software you want for C#.
I also recommend that you point your interest in FireMonkey, which comes with XE2. This is an HD application language. It's basically a re-write of the entire VCL library for better graphics, and much more.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We have an application made in Delphi 7 that has been evolving for over a decade. We are currently migrating to XE2, but that will take a bit of time.
I recently discovered FastMM replacement memory manager. After reading this seems like a no-brainer step for any application in Delphi 7 (or earlier?). Sadly, we are just discovering it; I suppose to do lack of knowledge or exposure.
My question is are there other additions like FastMM that are also no brainers when creating an application with Delphi 7, other small tweaks, components, tools or units like this one that most people would agree should be added to virtually any application for Delphi 7. I know many things have come to light over the years or components come into existence that we may not be aware of. Googling for this information gives most out of date results.
Any guidance is appreciated.
This kind of question (and answering it) has the risk of raising lots of discussion, but the information you ask for is valuable for others, so here is my answer:
use development productivity tools like ModelMaker Code Explorer, Castallia, cnPack IDE Wizards or GExperts (this or is not exclusive)
use FastMM4
use an exception catcher like madExcept
use a logging tool like CodeSite or Eurekalog
use a GUI control suite like those from DevExpress, Raize, JVCL, etc (there are way more)
use a base library like JCL
There is far more, maybe we should make this a community wiki.
From an upgrade perspective, my experience is that you best can upgrade all your 3rd party libraries to the latest version one by one, and then finally upgrade Delphi. That makes transitioning a multi-step process, which is easier to manage.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
So, since one cannot build metro style apps with F# and it isn’t possible to reference a F# library from within a metro style app, where is the place of F# in Windows 8?
I mean what is its future?
Won’t F# have the same fate as Silverlight after a while? Does Microsoft have the will to develop it farther?
I know, I know I can still develop asp.net, WCF and desktop applications in F#, but the question is what are the long term plans of the Microsoft with it?
Will it perish some day, or will live forever?
Edited:
Well, I’m fine with impossibility to build metro style apps in F#. I assume that its Lightweight\Verbose syntax and the need for indentation make it difficult to write a XAML pre-processor or write a VS template. The question is, is it an experimental project aimed to take the best parts of it and include them into C#, or F# has a future in Windows eco-system?
I think your assumptions are wrong - it should be possible to reference F# library from a C# Metro-style application if you create Portable Library project in Visual Studio 11.
So, F# will definitely continue to be useful as a langauge for developing the "difficult" part of Windows application where you implement your domain model, algorithms, network communication etc.
Moreover, with projects like Pit (or commercial WebSharper), it is possible to write F# applications that will be truly portable and can run not just on Windows 8, but also on Android tablets or on the iPad as JavaScript applications.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
It seems that most of the popular games in the world are developed using C++. But Microsoft's game platform, XNA Studio is based on programming in C# and I didn't find any popular game which was developed using XNA. Also there are fewer Ebooks you find on XNA and even the google search for a problem won't give you much help.
Does people doesn't use XNA as a gaming platform? Is it worth learning XNA for game development or should I consider some other platform?
Learn how to develop games. The languages and platforms are just that, languages and platforms. If you understand what you need to do to make a game, you can port it to any platform with ease.
Also, if a game is on the Xbox Live Arcade, then it has been developed with XNA. XBLA is a great platform to push out indie games, so for a beginner with (what I assume) is a small team, I'd recommend it.
I have a theory - admittedly I can't back it up with data or experience - that C# and XNA make a great "stepping stone" to C++ and DirectX.
Good C# code is fairly similar in structure to good C++ code. And good XNA graphics code is similar in operation to good Direct3D code.
There are considerably fewer ways to shoot yourself in the foot and write bad code in C#/XNA. If you start with C#, you won't have to spend time learning and then unlearning bad habits that C++ makes possible. And you won't get stuck on as many nasty low-level problems while you're learning.
Once you have learned how to code the "right" way, and how game/graphics programming works, then it should be fairly simple to then wield the raw power that C++ and DirectX provide.
Also, to refute your charge that XNA has little reference material: that is simply untrue. There is a huge XNA community online, there's excellent reference material on MSDN, and plenty of tutorials around. And the first-party samples on App Hub are second-to-none.
There are also plenty of famous XNA games out there. To be sure, they aren't AAA games - but you wouldn't choose "C++ and DirectX" as a platform for making one of those these days anyway. You'd choose the Unreal engine or the Source engine or similar.
Don't learn XNA. Learn C#, using XNA as a stepping stone. It's right now the most promising high level language for game development. It can be used in Unity (all platforms but Linux and WP7), XNA (all Microsoft platforms), Silverlight (Windows 8, web and WP7, possibly Xbox soon), PlayStation Suite (PS3, Vita, Xperia) and there's Mono for all the rest.
Few languages offer so many options right now, without requiring the effort of learning C++.
XNA can serve as a good reference for the common issues to be found in game development, taking care of nasty stuff like low level graphics programming or common asset management. It is also easily integrated with scripting languages (IronPython, Lua), which is very common in modern games.
be careful your investment. consider the portability of your application in C#
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am having a hard time understanding what the major purpose of Google's programming language Dart is. What's its role? Why would I want to use it?
You may checkout the technical aspects on this article. Quote:
The Dart programming language is presented here in its early stages.
The following design goals will guide the continued evolution and
refinement of this open source project:
Create a structured yet flexible programming language for the web.
Make Dart feel familiar and natural to programmers and thus easy to
learn.
Ensure that all Dart language constructs allow high performance
and fast application startup.
Make Dart appropriate for the full range
of devices on the web—including phones, tablets, laptops, and servers.
Provide tools that make Dart run fast across all major modern
browsers.
These design goals address the following problems currently
facing web developers:
Small scripts often evolve into large web applications with no
apparent structure—they’re hard to debug and difficult to maintain. In
addition, these monolithic apps can’t be split up so that different
teams can work on them independently. It’s difficult to be productive
when a web application gets large.
Scripting languages are popular
because their lightweight nature makes it easy to write code quickly.
Generally, the contracts with other parts of an application are
conveyed in comments rather than in the language structure itself. As
a result, it’s difficult for someone other than the author to read and
maintain a particular piece of code.
With existing languages, the
developer is forced to make a choice between static and dynamic
languages. Traditional static languages require heavyweight toolchains
and a coding style that can feel inflexible and overly constrained.
Developers have not been able to create homogeneous systems that
encompass both client and server, except for a few cases such as
Node.js and Google Web Toolkit (GWT).
Different languages and formats
entail context switches that are cumbersome and add complexity to the
coding process.
Major purpose of dart language is replacement of JavaScript. It fixes common issues of JavaScript, it is actually compiled to JavaScript, but in the future it will have its own VM.
Main advantages over JavaScript are that it is object oriented interface inheritance based language, it has support for interface factory builders. It has simpliefed actor model called isolators.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
In an effort to sharpen my programming skills, I'm looking at doing some on-the-side learning / web development in either ASP.NET MVC, or Ruby on Rails. (I'm completely new to both, though I have a solid C#/Java background).
Based on current market trends and demands, which technology should I sway towards if I want to get the best return-on-investment down the road?
From my understanding there is a greater demand for ASP.NET MVC, but at the same time, there are a lot more qualified/experienced ASP.NET MVC developers.
Ruby-on-Rails on the other hand: there's less projects, but developers seems harder to find.
One concern for Ruby is that Oracle recently dropped it from the Netbeans IDE.
Since you already know C#, it will be easier to learn .NET MVC. I've also seen a lot more jobs that wanted .NET MVC than Rails.
Personal opinion
I have been an ASP.NET developer for the last 3 years and I love C#. However, my personal opinion is that .NET MVC is not as easy to use or nearly as mature as RoR. I have recently developed a passion for RoR. There are some things that you can do with .NET MVC, but are built into the culture of RoR. For example, there is a lot of focus on making the developer experience nice, Test-Driven Development, and convention over configuration (to speed up development). I also have to admit that RoR development on Windows isn't as nice. To really enjoy it, I would use a Mac or dual boot to *nix.
There is a lot of debate on this issue and it really comes down to what constraints you have and what your preference is. If you're trying to gain an career advantage, I think that there is more potential in .NET MVC (at least where I live in Utah and from what I can tell from other areas). I've personally found Ruby to be a really fun, unique language to use that makes me happy writing code.
Also, I'm pretty sure that the NetBeans IDE is not among the popular IDEs used by Rubyists. I've never heard of anyone using it for Ruby.