Announcement

Collapse
No announcement yet.

Miguel de Icaza Calls For More Mono, C# Games

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • dufoli
    replied
    @blackiwid:
    1. modular binding? You mean that you prefer to loose your time to look for lib over google, find a binding for it in python or whatever and add reference and used it... Why ? A framework just let you add it easier. The framework power is that is well designed. The framework is tested a lot so you have quality assurance whereas a library on advanced thing will maybe be alone on this task and not sure about quality of the lib. Another issue without framework is that we reinvent the wheel each time. We have a lot of xml parser over library because each project want to used a different one. Why reinvent the wheel...
    4. I do not say that python is bad or anything else, I just said that mono is great.
    5. xamarin sold a product for android too. The goal is to share some code behind mobile app. Anyway this part is the propritary part of xamarin it is just to make money and mono is a second part.
    6. python is a great language and you have acces to it with ironpython on mono.
    7. here is the big question.
    First, I remember about 5 years ago everybody said the same and said take java and you will not have issue with patent and today Oracle has bought Sun and we have patent sue from oracle...
    Second, Microsoft has never sue mono or anything related to mono. They have do some step in the right direction by providing community promise.
    Third, Mono engine is based on standard from ECMA (334, 335). The patent is over ASP.NET, ADO.NET and widows forms. Most of mono application just used GTK# as UI so no patent issue with ASP.NET and windows forms. For database layer, there is linq...
    8. Common, get money from MS to do that. Here is the conspirancy idea. So you prefer another language python but as previously said python is available on mono. Staying with with regular python just make loose the framework power...
    9. I am pretty sure that linux/python/BSD/ Wine/Samba break a lot of patent registered out there. So do we stop to use them because of that?
    Software patent is just a big crap but mono do not contain more patents issue than any other it is just that Microsoft is the bad guy for many guy in open source word. Whereas the word have change... google is controversal with our private life, oracle stop to support open source and try to sue any company out there to get money. Apple/samsung and many other company has issue with patent. Microsoft is not a bad company just one among other which try to make money. Microsoft is more open than 10 years ago... We just have to paid attention to any company out there...
    10. You still make mistake between mono and c#. Anyway, mono bring framework so you can keep python with ironpython.
    syntax are just equivalent. Python have a little advantage because it remove brackets...
    they both have, interpreter, good community, good performance,reflection/introspection, garbage collection, generics/template, yield system, anonyme methods/lambda expression, anonyme type/duck typing, raw string, strongly typed, functional language/linq, ...
    So they have many in common.
    I found few things in c# not on python:
    nullable type, extendable method, partial class, expression tree.
    Is there any async/await features on python? this features is planned for C#5 and is ever supported in mono.

    About the end, I can just return the same question: why pick python and have to manage binding/or reinvent the wheel when you have all in the framework?

    So you see mono is good choice too. Python is a good choice too for language but losing framework is just prehistorical.

    Leave a comment:


  • dufoli
    replied
    @blackiwid:
    1. modular binding? You mean that you prefer to loose your time to look for lib over google, find a binding for it in python or whatever and add reference and used it... Why ? A framework just let you add it easier. The framework power is that is well designed. The framework is tested a lot so you have quality assurance whereas a library on advanced thing will maybe be alone on this task and not sure about quality of the lib. Another issue without framework is that we reinvent the wheel each time. We have a lot of xml parser over library because each project want to used a different one. Why reinvent the wheel...
    4. I do not say that python is bad or anything else, I just said that mono is great.
    5. xamarin sold a product for android too. The goal is to share some code behind mobile app. Anyway this part is the propritary part of xamarin it is just to make money and mono is a second part.
    6. python is a great language and you have acces to it with ironpython on mono.
    7. here is the big question.
    First, I remember about 5 years ago everybody said the same and said take java and you will not have issue with patent and today Oracle has bought Sun and we have patent sue from oracle...
    Second, Microsoft has never sue mono or anything related to mono. They have do some step in the right direction by providing community promise.
    Third, Mono engine is based on standard from ECMA (334, 335). The patent is over ASP.NET, ADO.NET and widows forms. Most of mono application just used GTK# as UI so no patent issue with ASP.NET and windows forms. For database layer, there is linq...
    8. Common, get money from MS to do that. Here is the conspirancy idea. So you prefer another language python but as previously said python is available on mono. Staying with with regular python just make loose the framework power...
    9. I am pretty sure that linux/python/BSD/ Wine/Samba break a lot of patent registered out there. So do we stop to use them because of that?
    Software patent is just a big crap but mono do not contain more patents issue than any other it is just that Microsoft is the bad guy for many guy in open source word. Whereas the word have change... google is controversal with our private life, oracle stop to support open source and try to sue any company out there to get money. Apple/samsung and many other company has issue with patent. Microsoft is not a bad company just one among other which try to make money. Microsoft is more open than 10 years ago... We just have to paid attention to any company out there...
    10. You still make mistake between mono and c#. Anyway, mono bring framework so you can keep python with ironpython.
    syntax are just equivalent. Python have a little advantage because it remove brackets...
    they both have, interpreter, good community, good performance,reflection/introspection, garbage collection, generics/template, yield system, anonyme methods/lambda expression, anonyme type/duck typing, raw string, strongly typed, functional language/linq, ...
    So they have many in common.
    I found few things in c# not on python:
    nullable type, extendable method, partial class, expression tree.
    Is there any async/await features on python? this features is planned for C#5 and is ever supported in mono.

    About the end, I can just retur n the same question: why pick python and have to manage binding/or reinvent the wheel when you have all in the framework?

    So you see mono is good choice too. Python is a good choice too for language but losing framework is just sad.

    Leave a comment:


  • blackiwid
    replied
    Originally posted by elanthis View Post
    And, quite simply, you're "wrong." The "best projects" don't actually offer better than the CLR ecosystem. Those many bindings are inconsistent, with different naming conventions, API conventions, error conventions, etc. Most of them are buggy or incomplete. Most of them are poorly documented. Few of them are at all any easier to use or understand than the cohesive CLR standard libraries.
    First thats maybe true, but thats then because less manpower stands behind this projects. Then its not the problem of the language or the development structure (bazaar vs catedrale) its primary the problem that ms has a big manpower to make that somehow happen to be halfway good, there are projects which are definitivly better than such all-in-one frameworks like mono or java but there are some that are not as good. I belive the open modular system would scale better with more programmers than such monolitic structure would do.


    So in java you see that this big system sucks, so ok mono has the advantage that its open, but on java you saw that this crossplattform thing has big disadvantages, no java programm was ever fast enough to use on a desktop with no bad feelings and did not integrate well in the used Environments. There was so much stuff that prevented java to be a good language on the desktop, starting by the long loading time till the whole framework was loaded at programm-start, going further in using much ram, and being ugly.

    So thats maybe a bit better in mono but only because its open and somebody cared about a good feeling under linux, but on the java side it feeled not even good to use it under windows. So yes mono is maybe better here, but again if you watch what libraries you use you can programm crossplattform also in python at least for windows and for linux. Handy programming is another tasks its another question, I did not notice that icasa talked about handys I thought he talked about games at all, and I got a game running under linux and windows, and to not make bindings for windows is something that is a question of manpower and will not of the language, so you could easily make of 99,9% of the python-packages even if they use some C code not only for linux but also for windows. here could be done more I agree to that, but you cannot tell people who dont get money for it to compile that shit under windows.


    So maybe you are right for crossplattform maybe mono is better to use with as example the python language behind, so I will maybe look over such stuff if I care about crossplattform, but If I want to write some stuff for linux or dont use gtk or 3d-engine stuff, I will still use "nativ" python code because it integrates better and is more easy to use espacialy under linux, because I dont have to install a additional complete big development-plattform.

    btw there are conventions (PEPs) in Python and programms that checks if you stick to them, maybe some projects dont use them but thats a scalable problem, if some projects have so less manpower that they stay in the prototype status and get not much refactory work that happens.


    Originally posted by elanthis View Post
    Which doesn't get you that far if you want to make a lot of money. Which most of us do, because programmers get paid a lot of cash, artists are needed in droves, etc. Python gives you a few platforms. C# gives you many. Many platforms means more money.
    I dont see software as products so you can sell support or you can write a special software for a person or better a company as a service but lisences should not be a product. So if thats not easy to make money with that aproach it?s sad, that have to change then, there are some stuff out that could change that, like micropayment services, but even that does not work right now because our economic and political system and even our money-system is broken, so we have to change that, in a way that someone who wants to make maybe with some other guys together a game for fun dont have to live out of that, like it is today. And some others have money enough and the shure constant income that they can be shure that if they give some away as gifts that they will not suffer later because of unemployment or so. And even the thinking that software that cost nothing is less good than a software that costs money that can be true sometimes but it is not always. So we need a basic income for that, but thats another question.


    Originally posted by elanthis View Post
    You're clearly not a game programmer.

    funny I am, I did write in python a singstar like game. And it worked good even on the slow featureless opensource linux drivers. Yes its no shooter wiht 1gb ram filling textures, but its still a game So what you mean is that I do not make professional games, like hollywood blockbusters to sell them, there you are true


    That I mean with modularity, if you have a good engine where most performancecritic stuff is programmed in C or C++ and you just have a python wrapper/binding around it, there is no problem with a bit python to bind together some sensors and actors, the game is then mostly as fast as the C-engine parts are the 1-2% which got lost from the python code is not important.

    Originally posted by elanthis View Post
    Which is basically scripts, mini-projects, and the crap the FOSS community tends to hack together and call production code (e.g., all of the crash-prone Python-based core apps in Fedora; I see more uncaught Python exception crashes on Linux than I do segfaults!).
    I dont see that problem, its a question of code quality, you can write bad code in any language, and if you use some autotest tools, you can make projects that are very good maintainable.

    But you forget about one big advantage of python that you underestimate, you can make faster than in nearly any language some prototypes and programm. So if you waste less time to make a programm you have more time to improve it, write more tests...


    Originally posted by elanthis View Post
    Also, "what most developers can program in" doesn't mean much. Most developers -- like most people in general -- are morons. The Web has given us a huge increase in crappy apps, but has given us very, very, VERY few amazing apps. You'll be hard pressed to name any "applications" (rather than just HTML services) that aren't made by Google, I'd wager.
    Yes but as example using css for theming a gui I found very impressive and there are much guys who learn css because they need it for living, and maybe (even if I dont like javascript much) even the use of js in the functionality is not the worst choice, and you get behind yourself a payed armee of googe and other developers who make your javascript engine faster for you ^^
    At least I find it very interesting aproach and I am openmindet to such new ways on the desktop. gtk was not the best thing so maybe that makes it easier to write programes nativly for linux (I mean gnome but gnome has most users so I just say for linux )

    Originally posted by elanthis View Post
    Microsoft's people really, really, REALLY just don't give a shit if apps are crossplatform.
    They will if 95-99% of the windows programms just work under linux and then logicaly 50-90% of their users better use the better and costfree linux-environment, so as more as mono gets more sucessful they will care more In the way that they fight it.

    Originally posted by elanthis View Post
    The only place Microsoft is still "at war" with Linux is in the mobile/embedded arena, and really they're only at war with Android. Which is not "Linux" as we know it, because it's literally just the Linux kernel and then a bunch of Android-specific code that has nothing to do with the wider GNU ecosystem we think of as "Linux."
    You talk about the present, I talk about the future, even Android was only possible because of linux, and you see one thing today, you mentioned the handy stuff and the consoles, but that has one negativ point for microsoft, if pc as gaming-plattform dies slowly the only reason to use microsoft Windows floats away, ask people why they dont use linux instead of windows at their homecomputers, the answer is at least for 50% if not more, because they dont get all the blockbuster games running there. Libreoffice is good enough for 99% even gnome-office would be good enough (abiword + gnumeric), so thats not the biggest point.
    So I think Microsoft could become bigger linux problem in the future but yes we will not see in 2 years 20%, but maybe in 5 years, with ubuntu we was by around 2% (getting good counts is difficult when you legaly can copy or getting it over cds in magazine) then it got down a bit, because unity and gnome-shell, but gnome-shell really rocks its just difficutl for users to adapt fast, but ok I do not really care if 99% of the 2% linux-desktop users are developers and in the windows world only 1% are developers we have more power to make good stuff for this 2% of users so I dont really care if the 98% suffer from selling all their freedom to some companys.
    Last edited by blackiwid; 13 February 2012, 01:18 PM.

    Leave a comment:


  • XorEaxEax
    replied
    Originally posted by elanthis View Post
    XNA has absolutely no equal outside the CLR.
    Oh come on, yes XNA is a nice framework but that has nothing to do with it being written in C# (personally I'd say it's good despite being written in C# but that's just me), heck I used to supply patches back in the day to the Allegro game framework which was created by Shaun Hargreaves who is the creator/chief architect of XNA. Allegro is still going strong (version 5 now iirc with a rather substantial rewrite yielding lots of improvements) and there's tons of other great frameworks, obviously SDL comes to mind and what's even better they are open source and fully cross platform, very much unlike XNA. XNA usage soared with x360 'homebrew' development and it seems those developers are jumping ship to IPhone and Android these days.

    Originally posted by elanthis View Post
    This is something the Linux ecosystem has never figured out, aside from maybe the Qt folks (who aren't _really_ Linux ecosystem at all, they're their own platform): a ton of small little independently developed libraries are just a pain in the ass. Developers want a ready to go consistent platform;
    Stop generalizing your personal taste as the taste of 'developers'. While naming conventions are nice, in practice I'll take functionality any day. And it's not as if I encounter tons of different naming conventions when programming on Linux, practically all external code
    I come across/use sticks to the foo_bar() style, with constants in capital letters, and type definitions denoted as name_t. Personally I could never stand the foofoofoofoo.barbarbarbar.foofoofoofoo() extremely verbose naming convention used by C# api's but again that's a matter of taste. Sure beats that godawful hungarian notation I had to live with back when I was programming on windows.

    Originally posted by elanthis View Post
    What matters is what people ARE developing games with, not what they WERE developing games with. Inthis market, C# is increasingly popular, and the little popularity Python ever had is dying out.
    I don't know about that, I'm pretty sure ObjC,Java,C++ have a firm grip on Iphone/Android development, C# likely only attracts x360 XNA refugees. Python with frameworks like pygame is more of a rapid prototype solution in my eyes, like l?ve for Lua.

    Originally posted by elanthis View Post
    But of course not a single person here screaming nonsense FUD about C# has actually ever _used_ any of that in a serious project, so I wouldn't expect you to know any of that. Most of you have never even used C++ or Python in a significant project, I'd wager.
    No, I haven't used C# in any serious project, I have used C,C++ and Python professionally for many years though. If I pick up another language it will likely be Go.

    Leave a comment:


  • peppepz
    replied
    Originally posted by ciplogic View Post
    So the best solution is to not use any technology that is in risk of patents.
    When did I say that? The best solution is to abolish software patents of course, but unfortunately that's not an easy goal, and it has to be achieved in each country of the planet. In the meantime, there are companies that, although they're competing in the same market as Microsoft, and by the same rules, choose to play fair (example: http://en.wikipedia.org/wiki/Open_Invention_Network) and there are others that instead don't care about having a good image, social responsibility etc. and choose the dirty way to get money. We can't ignore that.

    It's easy to say "I don't care about patents" if you're not the one who is going to get sued.

    That said, yes, I agree with you that free software developers should not refrain from implementing patented features, as it's a vendor/distributor's job to avoid violating the specific laws of each country (remember those crazy times when you couldn't export cryptographic software from the USA?). But jumping into the wolf's mouth for the heck of it, while proclaiming how the wolf has changed and won't eat lambs any more, is another thing. Imho.

    Leave a comment:


  • Death Knight
    replied
    I against of it. Don't like C# / Mono...
    I don't install that piece of sh*t to my PC.
    Instead using python give better results for games.

    Leave a comment:


  • BlackStar
    replied
    Originally posted by JeanPaul145 View Post
    The short answer is probably yes, but let me clarify:
    First and foremost, it is important to realise that there is not one Lisp-language like there is Java, C++ or C. There are many dialects, and Clojure and Common Lisp are 2 distinct dialects. This is relevant because code written in 1 dialect will not usually work without extra effort in another, although porting will probably be a lot easier than going from C++ to C#, for example, since most dialects share a core of only a handful of so-called special operators, on top of which the rest of the language is built. So porting comes down to writing the functions and macros used in terms of the available operators in the target platform, instead of "syntax conversion". In fact, Lisp dialects have very little syntax, and this is a Good Thingtm IMO.

    Now on to the actual answer:
    On Android, there is certainly a Lisp available, it's called Clojure. The "problem" with Clojure is that when I first heard of it, it was slow on Android due to the fact that Dalvik VM is register-based instead of stack-based, which made features oft-used in Lisp like closures relatively expensive on Android, though not on the stack-based JRE. However, since then I've heard (but not verified in person) that Clojure has been updated to work well with register-based VM's, thereby making it interesting to use in Android. In addition, higher-end smartphones have gotten a *lot* faster since then, so the combination of the 2 may actually make Clojure on Android viable.
    However, since Clojure is firmly rooted in the JRE, it probably won't work on iOS without a JRE running, including the extra overhead. In Android you don't get this overhead because AFAIK, as far as Clojure is concerned, Dalvik *is* its JRE.
    And IIRC, MS has basically said that native code (and therefore using a JVM) is a big no-no on WP7, though they may have plans to change that by now.
    So Clojure is probably not an option unless I'm wrong on at least the Apple stance.

    Then there is Common Lisp. Common Lisp has many implementations based on common ANSI standard, so portably written code will work on any ANSI-compliant implementation. Now I haven't seen all of 'em by a long shot (I mostly use the very high-quality SBCL, which compiles directly to native binary code, and therefore is very fast in most cases) but it just might be the case that ECL will work for you, because it first compiles to C code. So what you could do (for Android and assuming Apple allows pure C code, which doesn't seem like a stretch looking at Objective C) is build your game with Common Lisp, use ECL to translate that to C as part of the compilation procedure, and then use the platform's means to get bindings to that C code.
    This won't help you in WP7 though, but then again, short of writing C# code I think nothing will until MS allows unmanaged C/C++ code.

    Hopefully my answer is helpful to you.
    It is, thanks.

    I am not keen on the idea of porting between variants of the same language - the ideal would be a compiler that could generate native code for each platform. Barring that, an interpreter that's embeddable into C would be the next best thing (as it would support everything bar WP7), but only if it provides a sane way to interop with C (i.e. the core code would be written in C and the script would call into that). I'll take a closer look for my next project.

    Sadly, it seems that the only way to support all current platforms is to use C#. I say sadly, not because it is C# (which is a great language), but because the relevant tools are a bit overpriced and because limitations in iOS and WP prohibit the use of the most interesting facilities of the CLR (e.g. LCG, complex generics, dynamic languages like IronPython or IronRuby and powerful languages like F#).

    Now, if someone could make F# or IronPython run on mobile phones - that would be awesome!

    Leave a comment:


  • ciplogic
    replied
    Originally posted by eagleoneraptor View Post
    What about Vala for games?
    Vala as language is great for games, yet the tooling is at least a generation away (like 5-10 years behind, I am thinking that you can be as productive in Visual C++ 6 as in Vala), because C# have a lot of things out-of-the box like written libraries, not so many bugs in their code generation (look in their bugzilla).
    Vala have other burdens in itself, for example the objects are GObjects which are a bit heavy-weights (even "heavier" than C# objects, because the GC of Mono right now is generational, removing short lived objects is in fact faster than updating references of the reference counter that Vala does). Also, even may not be as bad, the debugger of Vala is also bad (I know there is a lot of work for making things better).
    I'm a C# developer which I used Vala and I tried to do some projects with it (with success), but Vala does not scale with similar tools that you may have in the .Net world (I'm used with Resharper, a static analyzer on the fly that will hint to me typical mistakes I can make in my code, but there are a lot of other tooling like JustCode (a very fast refactoring toolset), bug detecting helpers, profilers (the free SharpDevelop have a great performance profiler, Mono have a great memory tracing profiler), the capability to add to a project a reference to assembly and Code completion works already for that piece of code, will make you think that Vala is a bit away.
    At the end, depends on the game, if I would start a game in C# and I supposedly want an extra performance, I think it would make sense to use Vala instead of C# for the final application (as GCC may generate faster code) on a desktop profile, but if my application needs to be present on more platforms (like, but not limited to: Windows, Mac OS X, iPhone and Android), Mono is a more natural target than Vala.
    What if startup performance (that JIT may be blamed for) is the stopping factor for your game (I don't know so many games that would be affected on this, but this is just to check a point. Most likely I would go to do AOT for all assemblies (like at the end of this page: http://www.mono-project.com/AOT ).
    At the end, is obviously that I'm biased for C#, but my bias is mostly because I'm thinking C# with tooling (some commercial), which Vala does not have (or to an enough extend to matter). If JetBrains would create a Vala IDE, it would be something, but we will have to wait for some time till this dream would happen.

    Leave a comment:


  • ciplogic
    replied
    Originally posted by peppepz View Post
    No. They sued TomTom which used plain Linux. The patents they're using to extort money from honest companies that owe nothing to them, are a mix of trivial patents (cf. B&N ones) and patents related to obsolete standards that companies have to support because of Microsoft's abusive monopoly on the desktop (cf. the TomTom "long file names" one). They have nothing to do with Linux per se.

    Indeed, they won't sue now. They didn't sue people for using FAT for twenty years+. Then they sued TomTom for using FAT when FAT became an entrenched standard that no one could escape from, anymore. In particular, they began suing after they failed to offer a competitive platform against Linux in the embedded space (they were happy as long as TomTom was using Windows CE for their devices).
    So the best solution is to not use any technology that is in risk of patents. For this matter is better to use fonts without antialiasing, to format all memory cards with EXT2, to not have conflicts with a patent attack 10 years from now, and of course to not use browsers, as they have support of Geolocation and maybe once a company like TomTom may attack our browser implementor for using a patented technology to locate where we are related with the router. Ahh, and I forgot about WiFi that our browser may use, it may be patented too, the same about the device.
    I'm a bit out of my mind when I am just hearing that patents and Mono. Not because they may not be there, but because if Paint.Net (or Pinta) is great software, people should not think about patents, copyright and such. Or if we think in just those terms, is better for the people thinking around it to improve the applications they really care, contributing fixes or patches.
    An application that is in patent trouble as technology covered may be LibreOffice, and no one (that comments here about how evil are Mono's patents) thinks how to reimplement Java bits in C++ or Python to avoid a patent attack, or to make a better opensource UI that being original, and to make sure that it will never be attacked by other Office suite makers. In this way we will all gain something and we will enjoy for what we have. If not, and just complaining, the Mono users will enjoy Sims 3 or Second Life running fast, and they will not care if it runs Mono or not, maybe EA or SL Corporation when they are attacked by MS by a patent. I will enjoy Gimp until Adobe will attack it, and so on.
    I think that the solution is to improve the OSS software to have that many functionality, that when it will be attacked by patents, even disabling 20% of functionality that may be infriging, we will have still a very powerful application.

    Leave a comment:


  • peppepz
    replied
    Originally posted by elanthis View Post
    and really they're only at war with Android. Which is not "Linux" as we know it, because it's literally just the Linux kernel and then a bunch of Android-specific code that has nothing to do with the wider GNU ecosystem we think of as "Linux." There's a patent shitstorm going on there between everyone right now.
    No. They sued TomTom which used plain Linux. The patents they're using to extort money from honest companies that owe nothing to them, are a mix of trivial patents (cf. B&N ones) and patents related to obsolete standards that companies have to support because of Microsoft's abusive monopoly on the desktop (cf. the TomTom "long file names" one). They have nothing to do with Linux per se.

    C# patents are not going to be at stake there, though, as (again) Microsoft has nothing to win and a lot to lose by harming C#.
    Indeed, they won't sue now. They didn't sue people for using FAT for twenty years+. Then they sued TomTom for using FAT when FAT became an entrenched standard that no one could escape from, anymore. In particular, they began suing after they failed to offer a competitive platform against Linux in the embedded space (they were happy as long as TomTom was using Windows CE for their devices).

    Leave a comment:

Working...
X