.net Micro To Be Open Sourced


Pleng said:
Are you referring to MONO?

Nope. C++ using SDL and OpenGL / GLES

I do 99.99% of my development within visual studio on Windows, and compile for linux / arm every so often from an Ubuntu VM, just to make sure everything's still working sensibly.
 
Last edited by a moderator:
Ah yes so Visual Basic development is out of the question then.
 
Nice post dflemstr!

Garbage collection: I don't know that much about its faults to be honest, but any issues can surely be solved.
I'm not expert in the field, but from what I know main fear regarding GC is it's unpredictability. That is, if your app does a lot of voodoo with memory (many creations/destructions), GC might decide to clean it up at any point during app's operation which might result in noticeable stall for a fraction of a second. This might be annoying in a game and quite hard to track if you are unaware about it. GC might be called manually to make it predictable easy - so in practice it should rarely (never) be an issue. Also IMHO there is a myth regarding GC from master programmers who are good enough to manage memory themselves and any automatic memory management simply is a disadvantage (and potential risk) in their eyes.

I'm not too worried about it myself. If you are experienced C++ developer, you know there are plenty of possible hard to track memory issues in C++. Safety of C#, especially for smaller projects, looks very attractive to me.
 
Tenuki said:
I'm not expert in the field, but from what I know main fear regarding GC is it's unpredictability. That is, if your app does a lot of voodoo with memory (many creations/destructions), GC might decide to clean it up at any point during app's operation which might result in noticeable stall for a fraction of a second. This might be annoying in a game and quite hard to track if you are unaware about it. GC might be called manually to make it predictable easy - so in practice it should rarely (never) be an issue. Also IMHO there is a myth regarding GC from master programmers who are good enough to manage memory themselves and any automatic memory management simply is a disadvantage (and potential risk) in their eyes.

I'm not too worried about it myself. If you are experienced C++ developer, you know there are plenty of possible hard to track memory issues in C++. Safety of C#, especially for smaller projects, looks very attractive to me.
Well, I've been using languages with managed memory for a *long* time now so I know what it means to have that feature. When I saw Lunatic's comment, I thought that he had heard about some specific issue with the current Mono GC algorithm, and not about the issues of GC in general.

There are very many good GC algorithms out there that actually don't suck; Boehm's GC, for example, is so good that it's being used in actual C++ (and Mono, LLVM and gcj use it too...)
They mostly work better, however, if you actually leave them be (meaning that you don't call "System.gc()" or something equivalent) because modern GC implementations are able to perform garbage collection on a separate thread (See for example the Google Go GC) which means that your main program thread won't slow down at all during GC.

When using managed code, I tend to just not use object allocations more than necessary, or if I need objects for some reason, I make them immutable so that they can be picked up by the GC more easily (as any functional programmer will tell you is good practice anyways). I almost never have any issues with GC because of that.
 
Last edited by a moderator:
Pleng said:
Ah yes so Visual Basic development is out of the question then.

Check out Gambas. It's not 100% code and feature compatible with VB; the author stated that he wanted to improve upon his inspiration. It also seems to have some limitations, for example i'm scratching my head over how to make a proper GTK toolbar or populate toolbar buttons with system theme icons. Having said that, I haven't coded any gui applications in nearly ten years, and back then I was using Visual Basic (5 I think) - using Gambas I got a simple test window with buttons and stuff up and running in 2 minutes, which was flipping exciting. I got the basics of a Pandora app sorted out the following evening, and it's been plenty of fun. I can assure you that nobody here will tell me to use a proper language for this reason: IT WILL KILL ALL THE FUN I'M HAVING.

:lol: :ph34r:
 
Last edited by a moderator:
Ah yes thanks for the heads p. I remember posting about Gambas a while back. Can you definitely make Panodra apps with Gambas then? There appeared to be some confusion about that before.

Also do you know of any Live CDs, or even better, a VMWare image that has a Gambas environment pre-installed?

cheers!
 
Pleng said:
Ah yes thanks for the heads p. I remember posting about Gambas a while back. Can you definitely make Panodra apps with Gambas then? There appeared to be some confusion about that before.

Also do you know of any Live CDs, or even better, a VMWare image that has a Gambas environment pre-installed?

cheers!
Wow, you meant actual Visual Basic?? I didn't know that developers that used to program in that language still were alive (not because of age, but because of the Microsoft ActiveX OLE Runtime 6 Monster)

Anyways, no, you won't find a distro that has Gambas preinstalled (unless someone uses openSUSE Studio to tailor one for you), but just take e.g. a Fedora LiveCD, install the "gambas2-ide" package (yes, you can install packages while running a Live CD; the packages will "disappear" when you reboot though) and off you go.

Also, please note that if you want an application that someone's able to actually *help* you with (Gambas is neither widely known nor widely supported), please consider using MonoDevelop and VisualBasic.NET. It isn't quite the same as using VB, but at least it's the same syntax, and you still have that drag-drop button placement feature.
 
Last edited by a moderator:
Gambas (or more particularly Gambas2) was in the Ubuntu repositories when I installed it. I'm not sure how well it would work on a livecd as it saves all sorts of details about the projcts you're working on in a config folder - I guess you could live without this. Can't you remaster Ubuntu as a new live cd? If so, just install Gambas 2 and then do that.

EDIT: https://help.ubuntu.com/community/LiveCDCustomization

My current Gambas program is just a standard GTK application, so I presume it would work in XFCE just as well as in Gnome (what i'm using). According the the updates, the libraries have been ported to ARM, I need to look into this more really. Yeah the syntax is different, but lots of it is still the same. Following a VB book, I spent a fair few hours looking up slight differences in the syntax but the majority of the code worked.

Does Visual Studio/Visual Basic run within Wine? I'd much prefer that than run a virtual machine within Windows. I tried Googling but didn't find any references on how to compile a VB program using Mono.
 
ashdjones said:
Does Visual Studio/Visual Basic run within Wine? I'd much prefer that than run a virtual machine within Windows. I tried Googling but didn't find any references on how to compile a VB program using Mono.
Mono isn't compatible with VB, only VB.NET.
VisualStudio: VS 6 runs without any problems whatsoever; any later versions do not. But you'll want VS 6 anyways since that's the last version of VS that supported VB.
http://appdb.winehq.org/objectManager.php?sClass=version&iId=4647
 
Last edited by a moderator:
So Wine will run version 6 of Visual Studio, but Mono requires code created by later .Net versions?
 
ashdjones said:
So Wine will run version 6 of Visual Studio, but Mono requires code created by later .Net versions?
Yes, you can use MonoDevelop and C# or VisualBasic.NET to develop code for Mono.

VisualBasic 6 does not use the .NET technology; nor does it even run on the CLI or even resemble managed code.
VisualBasic and VisualBasic.NET are two completely different languages.
 
Last edited by a moderator:
dflemstr said:
ashdjones said:
So Wine will run version 6 of Visual Studio, but Mono requires code created by later .Net versions?
Yes, you can use MonoDevelop and C# or VisualBasic.NET to develop code for Mono.

VisualBasic 6 does not use the .NET technology; nor does it even run on the CLI or even resemble managed code.
VisualBasic and VisualBasic.NET are two completely different languages.

Okay, well I gave this a go. I installed Visual Basic 2008 Express edition (the free one) in XP and Mono-develop in Ubuntu. After knocking up a quick window with widgets on it in the former, I compiled it in the latter. Mono needed some extra stuff installed, so it turns out. Did some reading, found out I needed a package called mono-vbnc. Installed said package and... BINGO! It ran fine, the only hangup I have now is the window rendered identically to XP and not like a GTK app (from what I gather I need to change some of the code to accomplish this).

I think i'll stick with Gambas. At least this way you can run the IDE on the Pandora itself (it's a large Gambas program itself) for some sexy handheld coding/testing/debugging. If noone else does, i'll try and port it over and stick it in a PND. Oh hey, what about a script or app to make PNDs out of Gambas projects (with all the libraries etc)? That could be my second Gambas project! Oh wow, the fun just keeps on going.

All I need now is the actual machine. :(
 
Last edited by a moderator:
The nice thing about this .NET micro framework is, from what I remember, that the memory footprint is ~ 300 KB lowest, unlike the compact framework with several MB.

And it can be ported to be used either with OS, or completely without an OS - that would be interesting for some small devices.

Ah, here's a wiki link:
click

This I find interesting: "A managed device driver model allows drivers for many devices to be written in C#"

There's a porting kit, supposedly making porting to a new device easy:
click


If I had experience in doing low level embedded stuff I would feel like porting this to, say, Wiz.
I'm a big C#/.NET fan, and increasingly feel less like bothering with more error prone native dev for private stuff, if it's not hardcore number crunching.
 
Back
Top