Software Development Articles. - General Questions and Answers

some Programming (Java, .NET, XML, HTML, PHP, JavaScript, Ruby, C, C++, Ajax,Python, etc.) Agile Methodologies Scrum, Test Driven Development TDD, eXtreme Programming XP), Unified Modeling Language UML, Software Testing, Project Management, Databases, Configuration Management, Software Architecture, Software Process Assessment and Improvement, etc.

Related

Should I learn C++ or (C#/VB)?

I know Java fairly well and I would like to move onto mobile programming. I've read up on the aforementioned programming languages and my understanding is that C++ is hard and C#/VB are easier, but slower. The more I read the more I am confused however. In C++, I understand that there's Win32 programming, MFC, and ATL. In C#, there's .Net. Can someone please help me make sense of all of this?
i would suggest first go for C++
and then move further
Depends on what you are going to be developing.
C/C++ is better for performance critical applications with minimal GUI.
.NET + C#/VB is easier and safer at the cost of some overhead.
You'd want to learn all if you are serious about WM development.
The nearest language to Java is C#. The difference between VB and C# is more or less personal preference, as they both use the .NET framework. Most of your programming is creating the .NET objects, setting their properties, and calling their methods, to get them to do what you want. The language that this is done in, is more or less irrelevant.
Personally I would steer clear of C++ unless you are going down the Win32 route. Here your program has to respond to the WM_XXXX messages via the 'hdc' of the screen. (Hardware device context, you can't draw directly to it.) This method has a pretty steep learning curve. ATL and MFC are wrappers to make Win32 more object orientated, and supply more usable functions. .NET rendered ATL and MFC more or less obsolete, but they are still included for backward compatability, and are still prefered by some programmers.
The performance hit on a .NET program only occurs on its load, when the loader has to call the CLR JIT compiler to create the ARM native code. C++ Win32 will compile down to native ARM code from the start. If you do not have any ATL or MFC the compiled EXE can just be copied straight to the PPC and it will run without the need for any runtime libaries, dlls etc., as the core dlls are already part of the PPC operating system.
As mentioned above you may want to try both. The C# and C++ environments are completely different.
It all depends on what you want to do.
For more lowlevel and speed-dependant things, I'd say go the C++ route. Someone above here mentions that .Net is only slower at load time - this is most definitely not true. I have rewritten several apps that started out in .Net to native languages because they were too slow. The speed difference is fenominal - though less with .Net 3.5, but this is not available on all devices yet, especially not on stock ROMs.
C# is a lot easier than the overly complicated and cryptic C++, but again it has drawbacks. It is not as easy to do 'edgy' things in C# though often it is not impossible. C# is much easier than C++ for UI's as well, which can be a real PITA in C++. C# hides many of the more intricate lowlevels things for you and does these automatically. If needed, you can always create a C# user interface that calls C++ DLLs for the lowlevel stuff or whenever you need to.
As for VB, just don't go there.
I see you say you hail from Java. In that case, C# will not be very difficult for you. C# is generally taking the best of Java, C++, and Object (Delphi) Pascal, throws them together, mixes them up, and the result is pretty good.
Personally I am of the opinion that managed languages (C#, Java) do not a good programmer make, and you should know at least the basics of a native language (C, C++, Object Pascal, whatever), their quirks, and why these things are. This will teach you a lot about how things work on a lower level, and while you don't absolutely need to know these things they can still be very helpful when writing in a "higher" / managed language.
Then again, my personal preference for development is Object Pascal (FreePascal), which combines the power of native with the ease of RAD. I wouldn't advise anyone else to go there though, it's just what I grew up with (I have no issue with using C++/C#/whatever, they're just not what I prefer).
Chainfire said:
As for VB, just don't go there.
Click to expand...
Click to collapse
I don't understand why anyone would say this. In .NET, C# and VB have the same exact capabilities. They even use the same class libraries. Neither really has any advantages over the other.
@OP: I've done work in C# and VB.NET, and I can tell you that it's quite simplified and a fantastic OOP solution to mobile programming. The only drawback is that the loading time for a .NET application is a LOT slower than a C++ mobile app. A C#/VB.NET mobile app with one Form with nothing else takes a couple seconds to load, whereas a C++ mobile app will launch instantly. So, it's up to you. Do you want it to be simple, sacrificing a couple seconds at load time, or do you want to get down to the nitty gritty and work with C++ to save those couple seconds?
vb in general have a poor syntax which most programmers
stay clear off and vb have a long history of poorly designed and programmed
programs don by ½ armature's
and earlier vb's have had serious issues as not being real exe's requiring special
runtime dll's not being thread-safe and the likes
just too much ugliness and bad history in vb
for anybody to recommend it to anybody
Yeah, but that was then, and this is now. VB.NET is only slightly more wordy than C# .NET, and they both have the same capabilities and same speed. If the choice was between .NET and C++, I'd say go C++ though.
Cicatrize said:
Yeah, but that was then, and this is now. VB.NET is only slightly more wordy than C# .NET, and they both have the same capabilities and same speed. If the choice was between .NET and C++, I'd say go C++ though.
Click to expand...
Click to collapse
As Rudagar said, there's a lot of bad history. What remains in VB.Net is the syntax. IMHO it encourages sloppy coding and it's frankly plain silly. If you feel differently, that's fine by me. Either way, if you're going for .Net, why would you use anything else than a language specifically designed from the ground up for the framework: C# ? To boot, C# is an awesome language as well. I don't see any reason at all why you would use VB instead. Again, that's personal opinion.
Hi, I am very interested in learning C++ or VB. I had a VB class in high school, but I forgot it all...
I've got my feet dipped in water with Java, and I want to learn to make applications for my phone. I have no idea where to start. I was thinking of starting with a simple application like maybe a today plugin that will update my FB status.
Digging a little into it, it seems that's not as simple as I figured.
I really don't know where to start. Could someone point me in the right direction?

HTC HD Touch

Anyone know of a good software application that will edit php, and other related internet files from my HTC HD Touch..
The software must be free, preferablely alot like microsoft expression web 3.. and not like notepad
I have a similiar question, so I am hijacking this thread. I am searching for a Crysis PPC version. It should look like the Crysis version on PC, not like those crappy doom and wolfenstein clones for ppc, ahhh and it should be free (couldnt be very difficult to port something like this to ppc)...
You could try this:
Logical Sky CEdit v4.0 XScale WM5 WM6
Requirements: Windows Mobile 2003 or higher.
Overview: Programmer's Editor for Windows Mobile. Edit C#, C++, Java, PHP, HTML, XML, ASP.NET and Visual Basic .NET on your Windows Mobile device.
Edit Code on Your Pocket PC
CEdit is a programmer's source code editor for Windows Mobile devices.
CEdit features color syntax hilighting and project navigation features for a wide range of commonly used programming languages. CEdit is designed for developers who need to work with their source code when they are away from their desks.
CEdit is compatible with Microsoft Visual Studio 2005, 2003 and version 6.0 project file formats. Using CEdit, you can open your desktop project files directly on your Pocket PC so that you have quick and easy access to all of your source code. CEdit displays the project workspace folders on your Pocket PC, so you can quickly open a project and access the code you are looking for.
Supported Platforms:
Windows Mobile 6.0
Windows Mobile 5.0
Windows Mobile 2003 Pocket PC
Pocket PC 2002
Languages:
- C# and Visual Basic .NET
- Java
- HTML and XML
- ASP
- Pocket PC
- C++ and C
- Palm-Size PC
- PHP
- Handheld PC/PC Pro
Features: CEdit is a color syntax highlighting code editor for Windows Mobile devices. CEdit makes it easy to edit C#, HTML, XML, PHP, ASP.NET, Visual Basic .NET, C++, or Java on your Pocket PC. Open projects from Microsoft Developer Studio 2005, 2003 or version 6.0 on your PDA and quickly navigate through source code
Now you can edit C# or Visual Basic .NET on your Pocket PC!
CEdit Features:
Color syntax highlighting text editor with support for:
- C#, C++, and Java
- Visual Basic .NET
- ASP.NET, HTML, XML, PHP, and JSP
Project Files:
Use IDE project files directly on your PDA. Supports Microsoft Visual Studio 2005, 2003 and 6.0
Open project files from:
- Visual C#
- Visual Basic .NET
- Visual Basic 6.0
- Visual C++
- eMbedded Visual C++
- eMbedded Visual Basic
If you are not a Visual Studio user, you can create your own CEdit project files on your PDA that contain any number of files in any location.
Organize your related files when not working with a Visual Studio project.
Other Editor Features:
- Find and Replace
- File Outline (quickly navigate to each function definition)
- Adjustable Font Size Screen Shots
Click to expand...
Click to collapse
There is a free version too but I've not tried it myself.
Sorry for the mammoth post but thought it best to include as much info as possible, I removed the changelog from the document though.

[APP] [2.1+] DeuterIDE - Compile in the Cloud in over 40 languages!

DeuterIDE
What is DeuterIDE?
A mobile based programming text editor, compiler, and IDE built for Android and Blackberry Playbook. Complete with Dropbox integration, virtual keys for commonly used programming symbols, syntax highlighting, and support for over 40 programming languages, writing code on the go has never been easier.
What are the features?
- Online compiler and run results for over 40 languages
- Develop on this mobile IDE with syntax highlighting, automatic indentation, and bracket matching support
- Dropbox integration for backup and version control
- Search and replace, undo and redo, jump to line, auto indent, and other editor functions
- Virtual keys for commonly used programming symbols
- History of compiled submissions
- User defined templates
- Option to use your own ideone login
What programming languages are available?
Ada, Assembler, AWK, Bash, bc, Brainfuck, C, C#, C++, C++0x, C99, strict, CLIPS, Clojure, COBOL, Common, Lisp, CSS, D, Erlang, F#, Factor, Falcon, Forth, Fortran, Go, Groovy, Haskell, HTML, Icon, Intercal, Java, JavaScript, Lua, Nemerle, Nice, Nimrod, Objective-C, Ocaml, Oz, Pascal, Perl, PHP, Pike, Prolog, Python, R, Ruby, Scala, Scheme, Smalltalk, SQL, Tcl, Unlambda, Visual, Basic, .NET, Whitespace
We need your opinion!
We currently price it at $4.99. What would be a better price tag?
We have a lot of features. What are the features you would like to appear?
It's currently available on the Android Market(Google Play) and Blackberry App World. What other markets would you like to see it on?
Would you buy the app in it's current stages?
We are also looking for beta testers, please PM me for more information!​

Mono Abandons Open Source Silverlight.

The Mono project is about the only group of people actively talking up .NET and developing it, but in an interview Miguel de Icaza has admitted that Moonlight, the Mono version of Silverlight isn't worth the effort any more.
Microsoft may be reluctant to admit that Silverlight is dead - even though the writing on the wall is so big and clear that you can't miss it - but the Mono project doesn't have to pretend. In fact, because it has limited resources, what the Mono project works on is almost a better guide to what the future of .NET might hold.
In an interesting interview with InfoQ's Jonathan Allen, Miguel de Icaza admits that the Mono project has abandoned Moonlight. When asked why the answer was revealing:
"Silverlight has not gained much adoption on the web, so it did not become the must-have technology that I thought would have to become.
And Microsoft added artificial restrictions to Silverlight that made it useless for desktop programming.
These days we no longer believe that Silverlight is a suitable platform for write-once-run-anywhere technology, there are just too many limitations for it to be useful. These days we believe that in the C# world the best option is to split the code along the lines of the presentation layer. The user would reuse a core part of their application across all platforms, and write a new UI specifically for each platform they target: iOS with MonoTouch, Android with MonoDroid, Mac with MonoMac, Windows with WPF or Winforms or Mac, Web with ASP.NET and Windows and Linux with Gtk
It is not write-once-run-everywhere, but the result are applications that can exploit the native facilities and create native experiences on each platform."
http://www.i-programmer.info/news/89-net/4282-mono-kills-open-source-silverlight.html
Not Surprising
Not too surprised and probably a smart move by the mono team since Microsoft is essentially abandoning silverlight. Why would mono continue to work on an open silverlight implementation if silverlight itself is going to be dropped?

Porting Android to GNU/Linux, Mac and Windows.

I have been thinking about Firefox OS. Why anyone would buy a Firefox phone, if the platform (Apps store and apps) are implemented in the Firefox web browser for Android? What actually IS the Firefox platform - A so called 'Operating System' or the special gecko runtime? I think it's the gecko runtime.
Android is the same (yet dissimilar). Is Android an OS? or is it just a sophisticated Java runtime enviroment? I think, it's mostly that sophisticate Java enviroment.
Java's purpose was to create a platform that abstracted out across most other platforms (the UNIX's, Macintosh and Windows). It gave developers freedom, it gave businesses more flexible architecture, and it gave the FOSS community a powerful way to touch and intergrate free software onto multiple platforms at once. Android is implemented some what ontop of Java. (This makes sense, as almost all non-smartphones used Java Micro edition, I believe.)
But if everything Java, works multiplatform, why can't Android too?
I do know of course there are dependancies in the Java underworld within Android itself (camera, sensors libraries and etc...) Again, doesn't Java abstract that all out?

Categories

Resources