Programming language for multi-platform large software development? [closed] - 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 10 years ago.
I have experience in C/C++ and C#, and I'm planning to create a large software with the help of my friends, which will also include a GUI. It will focus on computer security and analysis, something like penetration testing, risk management, etc. The point is that I want it to be multi-platform software. I want it especially to work in Windows, Linux and Mac OS X. The point is that I don't know which programming language and programming paradigms/tools to use for this purpose. I want to hear your suggestions, any suggestion is highly welcomed. I plan to do several large software developments in the next few years, therefore, I'm even highly willing to learn new programming languages or tools, which will be useful and ease my job.

C++ with Qt is multiplatform as well. It contains nice GUI libraries and Qt-containers such QString, QMap which make you work easier.
EDIT:
Using QtCreator you can design your GUI by 'Drag and drop'.

You could use Mono to develop c# projects cross platform.
http://www.mono-project.com/Main_Page
Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft's .Net Framework based on the ECMA standards for C# and the Common Language Runtime. We feel that by embracing a successful, standardized software platform, we can lower the barriers to producing great applications for Linux.

I think Java is a good candidate for this. It works on all platforms where JVM is installed, it has many components you might use (GUI, security etc), and very easy syntax. Typically development in Java is much faster than in C++.
Hope this helps

You might be fine with a Web App.
If your audience is developers, then you might consider Java, or you might consider a language for a common backend (e.g. C++) with either dependence on a common UI library or dependence on platform specific UI libraries. Even if your audience is for developers, you can lose people's interest if it does not have a native-feeling UI. So you have a bit of a decision to make to determine how important that native look and feel is versus the amount platform specific code you write -- that really can't be answered by us.

Related

Windows 8 and Desktop Apps [closed]

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 found out that windows 8 is going to be heavily dependent on C++, HTML5 and CSS based apps(WPF ?). I spend a lot of time working on applications like matlab, scipy and C# as programming language at my workplace. Considering this, is there going to be any big change for desktop app developers ? are these apps going to be re-written under new code and C# has any future for desktop apps?
A lot of hearsay at the moment until September it seems there is nothing definite.
There is wide speculation on whether Jupiter will be the unifying
user-interface model for Windows, Web and mobile. Burela believes
Jupiter may a “next generation” XAML-based framework, perhaps a
“mashup between WPF & Silverlight.”
There also appears to be equally strong support for three key
programming languages: C# to appease the .NET developers, C++ to
appease the Windows core developers, and HTML5/JavaScript to try to
lure developers from other platforms.
Of course the controversy has been Microsoft’s focus on JavaScript
while nearly ignoring Silverlight and .NET developers. Articles like
this one — though unofficial and speculative — should help calm some
nervous developers.
Source: http://www.isdotnetdead.com/windows-8-supports-all-programming-models/#
ZDnet try asking probing questions.
Here is another link about the future of C#
Okay, your question confuses some terms - based on the articles you cite.
Microsoft are quoted as saying that the application they demonstrated on Windows 8 was written using HTML and JavaScript. The article interprets this as saying that WPF and Silverlight are likely to be binned in favour of HTML and JavaScript.
Let's have a think about this.
As far as I'm aware, Microsoft have been really keen to run applications in the Browser for a very long time. They have made ActiveX controls that run in a browser, they have written Silverlight to run in a browser. They are one of the leaders in the whole "browser based applications" concept. People may criticise their methods of achieving this in the past, but at least they were trying.
When you consider that Microsoft currently have a desktop package called Office and also a web-based package called Office365, you can understand why they might want to just have one package to maintain that works on the desktop and in a browser.
My final note - the ARS Technica article describes HTML tooling as inferior, but seeing as you can use the same tools to write a WPF application or an HTML application I don't agree with this point.

Is C# a viable language for a major project? [closed]

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.
I've been using C# for a while now and I love it for its great integration with Windows. The Win32 API in C++ is a monster, but that's another story. Anyway, I was wondering, is C# a "good enough" language to use for larger projects? Does Microsoft use C# in any of their applications? I've always assumed C++ was the only choice for large projects because of its speed and has no need for the CLR.
What is your opinion on C#?
EDIT: By large I mean applications like Microsoft Project (first example that came to my mind). It could also mean mission-critical applications, as well.
Unless you're after extreme performance (eg gaming), C# is perfectly acceptable for almost any application - I've been developing enterprise-scale apps in it for years and as a general rule, the advantages far outweigh any (negligible) performance losses compared to C++ - especially when you factor in development time and the relatively low cost of improving CPU speed.
Since I've started using C#, it would take a VERY good reason to make me go back to something lower-level like C++ - There are simply so many advantages in terms of ease of development, memory management, a huge library (.Net framework), WCF, LINQ, etc.
I would personally consider C# before any other language when starting a new project
I've using c# since it came out and so far there were only a few things I couldn't do with it such as print drivers. Other than that I developed fairly complex multithreaded server-side applications that are both reliable and fast.
Also - you may want to define "large".
Yes, but I'd encourage you not to follow a Vendor Lock in pattern. Although you could argue that doesn't really apply to .net, but you would lose.
SharePoint and Dynamics (Microsoft products) (and several others) are written almost exclusively in .NET (C#). They would certainly be considered large, enterprise scale applications. Almost all internal project at Microsoft, with the exception or Windows and Office supposedly are written in C# these days (I think it's even a requirement for new projects).
You will incur larger startup times, as you have to load the .NET runtime. Other than that, performance is actually quite good for most things.
And with the garbage collection, memory leaks are less of an issue, so Java and C# both become good options for mission-critical applications (memory leaks grow over time, and can kill things that run for weeks or months at a time. With a more reliable memory footprint, you application can be more stable).
so... yes.

Why aren't c# programmers drawn to ruby as java programmers are [closed]

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.
This is a trend I've noticed. There is a very large adoption of ruby from the java community. Is it that c# is such an awesome language + having good tools over java that most c# developers aren't as keen to switching to ruby permanently as java developers are?
What are your opinions?
C# is a modern, and quite powerful language, sporting:
Lambdas (closures)
Continuations (yield)
Value types
Properties
Type inference
Pass-by-reference
...just to name a few.
These features make a transition from C# to Ruby far less attractive than a transition from Java to Ruby.
Because .NET is part of a coherent environment which includes developer tools, database links, orm management GUI front ends, net front ends etc. etc.
Java is a language! There are losts of piecemeal bits and pieces which do all of the above, but, the quality varies considerably. From something like Apache POI which is a better interface to MS Office documents than MS provides to the abysmal J2EE stack which half does in a very complicated way what .NET does in a simple and elegant way.
Whereas for Enterprise level, millions of transactions, bullet proof, fast never lose your data all the extra work putting together J2EE, JDBC, Spring, Hibernate etc.etc. etc. is actually worth it, for a quick simple Web to Database app its just too painful, hence the attraction to ROR.
On the other hand while .NET can scale up to the big stuff (not as well as J2EE! ) it is still reasonably straightforward to do a small application.
I see two reasons:
It seems to me that the biggest benefits of switching to Ruby for a Java developer are closures and dynamic type inference. Both of these can be found in C#.
.NET benefits from a rather tight integration with the Windows platform - (COM interop, WPF, easy installation), making it more difficult to switch from .NET to something else.

Should I learn Java or should I learn C++? [closed]

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.
I have a pretty good non-OOP background. I've done lots of Visual Basic coding, and a little SQL.
I want to widen my skillset and be more marketable. Most of my experience has been working with scientific companies, and I've been supporting scientists a lot.
I want to take some online classes from my local community college. Should I take Java or C++ programming? My goal is to be more marketable. Some more background information: I've had a little bit of experience with .NET, and I am assuming that since I know C# a bit, it may be worthwhile for me to get into C++?
Should I learn Java or C++?
I beg you please don't close this question. Give me 10 minutes to see everyone's input.
C# is a lot more similar to Java than to C++.
I am a recent Computer Science graduate and from my job search I have to say that there are many more people wanting Java programmers than C++. I also saw a great deal of people looking for C# programmers. C++ is not being used as much outside of the academic and scientific field right now.
Java and C# are also similar languages so once you understand one you should be able to go to the other.
If you do want to do C++ that is fine. If you can learn C++ and then master C then you will be in a good position for those few places that need incredibly skilled C programmers. C++ and C are able to reach to a lower level (closer to the hardware) more easily than Java and C# can. That is why they are used mostly in the areas that are dealing with specific and custom hardware.
I want to widen my skillset and be more marketable
That's a reasonable goal, but the information you've provided doesn't help us guide you.
What do you want to do with your career?
Where do you want to market your skills?
What kinds of programming interests you?
What companies interest you?
Do you just want to learn something similar, or try a different paradigm altogether?
For example, Java would be a poor choice if you want to hack on the Linux kernel. C would be better. If you're interested in programming languages, maybe you should look into learning a functional language. OTOH, C++ would be a poor choice if you don't want to learn about memory management, and Java might be easier to get a head start writing webservers (not that both aren't well equipped for that).
You can learn any language, just for the hell of it. But it's more important to use a language that helps you accomplish your real goals. The language is only a tool.
I would also say if you want to support scientific computing invest some time into learning F#. There's even a book with all the right words in the title =).

Should I start my new shareware project in C# or Delphi? [closed]

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 13 years ago.
I want my code to be as secure as possible.
I do not think that the security of your source code is a good reason to choose between C # and Delphi. if you create an .Net executable you can protect it with a tool like .Net Reactor, on the othe hand the win32 executables are by definition very difficult to disassemble (get the original source code) unless you include debug information in them.
You should compare other features, in my opinion you should use the language with which you feel more comfortable and you have more skills.
In my case it always chooses delphi, because it has an excellent and fast compiler and thousands of third party components and in addition to generating executables without dependencies. ;)
You can check this question
What language or RAD IDE do you recommend for building shareware?
Also you can check this list of applications built with Delphi
Good Quality Applications Built With Delphi
Among them Skype, TOAD, FL Studio.
It depends on your needs. But in the absence of additional information: If it's a shareware program, I'd go for Delphi, mainly because it compiles into relatively small and fast native code executables.
Should you be concerned about modern (Delphi 2010) apps being less secure than older ones because of the new, enhanced RTTI - that can be turned off with a compiler switch.
Delphi is your best choice for shareware software : you can distribute your app in a single exe file , you can embed whatever resource you want to : html pages, images, even your dbserver (look for firebird embedded).
Lots of shareware software was developed with delphi : EMS products (EMS SQL Manager for MySQL, IB, Oracle...), Skype, 7zip...
Have fun with DELPHI
Best Regards
Deleting this because everyone is down arrowing my response simply because their opinion is different than mine. It was an answer to his question, but an unpopular one, so people decided to start taking points away from me.
That's not the purpose of the down arrow, to remove points from people who disagree with you. Your childish and ingnorant actions will subtract from the quality of this site.
In Delphi, you can use pointers (and sometimes they are necessary, for API calls for example) - so you are closer to C than with C#. There is a reason why Java and C# do not have pointers: security.
"Most studies agree that pointers are
one of the primary features that
enable programmers to inject bugs into
their code."
http://java.sun.com/docs/white/langenv/Simple.doc2.html
In the C# programming language,
pointers are supported only under
certain conditions: any block of code
including pointers must be marked with
the unsafe keyword.
http://en.wikipedia.org/wiki/Pointer_%28computing%29#C.23
"Pointers are like jumps, leading
wildly from one part of the data
structure to another. Their
introduction into high-level languages
has been a step backwards from which
we may never recover."
— C.A.R.Hoare "Hints on Programming Language Design", 1973, Prentice-Hall collection of essays and papers by Tony Hoare
Use C# just because it has more mainstream support. Plus it is sure to be backed by Microsoft. Which adds incremental features to the language from time to time.
Also, the main architect of C# in Microsoft is Anders Heilsberg which was the co-creator of Turbo Pascal and Delphi of Borland before he got pirated by Microsoft.
It doesn't really matter in which programming language you create your "secure" application as long as you know what you want keep working until you get the result.
If you build an application in python or any other scripting language for instance you can still have good security.
As a good friend of mine told me few times "it's all you! programming language is just an extension of your mind!"
Both are good. Both are secure. Plenty of people are around who work with either of them.
The support for "enterprise" features like heavy Web services, distributed applications and componentized applications is better using the .NET Framework. Similarly there's no direct equivalent to the vector-based forms possible with WPF.
But if your application will never need them - then go with what you feel most comfortable.
As with most of the posts here, I would agree that security is in how you write the program. Not is what language you use.
I use several different languages, depending on the project.
On top of asking your self which you would be more comfortable with, you should ask your self if you want to support multiple platforms.
My company does a lot of cross-platform development, and as such, we don't use C# on those projects.
There is the mono project that aims to allow .net code to run on mac and Linux, but between the two, Delphi, being pascal is somewhat more portable.
( On our cross platform projects, we use either C or C++ )
Use the language you are most familiar with. That way you can hopefully avoid pitfalls and gotchas of using an unfamiliar language.

Categories