C# on Mac

13

Comments

  • Reply 41 of 78
    vineavinea Posts: 5,585member
    Having worked the embedded market (telecom switches, spacecraft flight control systems, etc) I can say that the industry (and its trade mags) has its own set of biases from the limitations of the environment in which it designs...as much as the enterprise system industry who tout the inevitability of SOA.



    I don't believe that embedded programmers are paid all that much in comparison to their mainstream bretheren despite it requiring more rigor. Perhaps there's a pattern there. Structured, limited, systems by their very nature limit the maximum complexity of problems solvable by the final system.



    In any case, I dispute that it is "general consensus" that software development is any more or less flawed than most other human endeavors. If our paradigm is so flawed then it is doubly amazing that our work products are so successful that modern society would be impossible without it and we built an $300B+ industry from zero in 40 years. There has been an unending stream of customers for our poorly developed products built using "ridiculous" C-based languages.



    Are you the hardware weenie that occasionally posts such gems that all software should be written in a Verlilog (or was it VHDL)? Can't be Verilog since that's C syntax based...



    Vinea
  • Reply 42 of 78
    Quote:
    Originally Posted by vinea


    Are you the hardware weenie that occasionally posts such gems that all software should be written in a Verlilog (or was it VHDL)? Can't be Verilog since that's C syntax based...



    No, but I am the one who thinks that VHDL or verilog are more suitable for building parallel systems than are sequentially-rooted languages -- not that there's no value to higher level programming. If that were the case, I wouldn't like Matlab as much as I do. I think I've expressed this entire thought in any instance where it has come to discussion.



    I know it must be hard to listen to someone point out observed flaws in software development, your industry, as well as flaws I've read about, but there's no reason to get defensive. Software and computer science are much newer pursuits than mechanical and electrical engineering. In time, software development will become as robust a procedure as anything else: building a car, plane, or CPU, for example. But right now it's not. You should be able to accept that there's a lot of room to improve, and that, perchance, software developers are awfully arrogant when considering that it's expected for software to crash occasionally, even though that's not the case for similarly complex mechanical and electrical products. I know that the software developers aren't worse intellects, so what's the reason for the failure of software to be robust? My answer is that the paradigms make it too easy to release products built without great thought and concentration. The whole idea of "rapid application development" is a giant double-edged sword. My apologies if that wasn't entirely clear.
  • Reply 43 of 78
    shetlineshetline Posts: 4,695member
    Quote:
    Originally Posted by Splinemodel


    Software and computer science are much newer pursuits than mechanical and electrical engineering. In time, software development will become as robust a procedure as anything else: building a car, plane, or CPU, for example.



    Those items of physical hardware do, however, fail and have "bugs". We wouldn't need mechanics and manufacturer recall notices if they were so perfect. Have you seen the published bug lists for some CPUs? It often becomes the job of a software engineer to make sure he gingerly steps around the CPU bugs to make he doesn't set them off.



    If people were willing to pay as much for software as they do for a 747, and to hire teams of software engineers to regularly inspect and maintain that software, I can imagine software and 747 crash rate statistics being very similar, although one would case would usually involve more deaths than the other.



    People want software fast, they want it cheap, and they want it chock full of features. Do anything complex and multifaceted fast and cheap, and I don't care if you're working with bits and bytes or nut and bolts, you're going to see higher defect rates. The market, unfortunately, drives software toward those higher defect rates. If you carefully hone and polish your software, trying to get as close to 100% bug-free performance as you can get, and/or you reduce features customers want in order to improve reliability, quite likely your competitors will eat your lunch. Their customers might bitch and moan about the bugs they end up dealing with, but they'll still keep buying the stuff that's available sooner with more features for a lower price most of the time.



    Software does have some special weaknesses, and I'm sure there are ways to at least partially address those weaknesses which we either haven't found yet, or simply haven't implemented widely yet due to cost or inertia. But I have major doubts that there's some point of "maturity" awaiting us in the software development future where something as complex as a web browser or a 3-D video game becomes as robust as a coffee maker. I think the best we can hope for in the foreseeable future is to reduce the impact of inevitable failures so that software tends to recover more gracefully more often.
  • Reply 44 of 78
    Ahh. C#.. I love that language.. but I do understand some of the hesitation from MAC users.. There are positive and negative sides to C#.. but then again, there are with any language. The one thing I love about C# is that it is easy and crossplatform compatible. I been using it for a few years now and I love it. Most of the Virtual Worlds I use now use C#. And those worlds are on Windows, Mac, and Linux.



    EXAMPLE : http://opensimulator.org



    This above is a Virtual World Simulator made in C#. ( Mono etc bla bla )



    Anyhow.. I am a windows user who sees the light of MAC and have for years.. Just couldn't afford it until recently when they made OSX 10.5.4. Once they did that I can now run MAC on my x86 Laptop. Thank you guys !!!!



    Now I can finally run my fave program Final Cut Pro and Pro Tools.. Yaaaay



    Anyhow.. C# rules.. There is an IDE that you can get right now named MonoDevelop ( Simular to SharpDevelop ) that is unstable but seems to run..



    http://monodevelop.com/Download/Mac_Preview



    Try it out. I will also be looking for C# IDEs. As I love the idea of porting over to MAC, the only thing that stops me 100% is the software I use with ease do not run on MAC yet. I repeat YET... Keep in mind guys.. not everything is for windows anymore. :P



    Anyhow.. Good luck..



    John
  • Reply 45 of 78
    celemourncelemourn Posts: 769member
    Quote:
    Originally Posted by janefoxclaw View Post


    Ahh. C#.. I love that language.. but I do understand some of the hesitation from MAC users.. There are positive and negative sides to C#.. but then again, there are with any language. The one thing I love about C# is that it is easy and crossplatform compatible. I been using it for a few years now and I love it. Most of the Virtual Worlds I use now use C#. And those worlds are on Windows, Mac, and Linux.



    EXAMPLE : http://opensimulator.org



    This above is a Virtual World Simulator made in C#. ( Mono etc bla bla )



    Anyhow.. I am a windows user who sees the light of MAC and have for years.. Just couldn't afford it until recently when they made OSX 10.5.4. Once they did that I can now run MAC on my x86 Laptop. Thank you guys !!!!



    Now I can finally run my fave program Final Cut Pro and Pro Tools.. Yaaaay



    Anyhow.. C# rules.. There is an IDE that you can get right now named MonoDevelop ( Simular to SharpDevelop ) that is unstable but seems to run..



    http://monodevelop.com/Download/Mac_Preview



    Try it out. I will also be looking for C# IDEs. As I love the idea of porting over to MAC, the only thing that stops me 100% is the software I use with ease do not run on MAC yet. I repeat YET... Keep in mind guys.. not everything is for windows anymore. :P



    Anyhow.. Good luck..



    John



    Welcome to the Light Side of the Force, John. And major cudos for getting Mac OS to run on your laptop (more effort than I'd want to put into it).



    Now, as for C#, it is about as cross platform as Obj-C is. Technically it is, and there is some support through the open source community, but from any practical, off the shelf stand point, no, it's not. Mono is what, 3 versions of .net behind now? Developing in a platform-centric language such as either of those two, if you're in individual developer, isn't a big deal, but if you intend to work with others, you have to be conscious of the standards that they will be used to. I honestly am not comfortable developing cross platform stuff (mac + unix/linux) in anything but C/C++. I could go Obj-C, since gcc supports it, and there is the GNUStep version of the foundation framework, but the vast majority of programmers in the scientific community have no idea it even exists. Hell, most are still stuck in fortran (shudder). So it would be counterproductive to try to bring my personal pet language into a serious environment.



    C# does have some nice features, and also some really annoying ones. For Windows it's the defacto standard, but when you start stepping between worlds, it's USUALLY a very very poor choice.



    So I guess my point is that the stereotypical mac programmer aversion to using C# is precisely what you quote as your favorite aspect. The cross platform capability, while impressive to you, is frightfully insufficient to those of us who are used to programming in languages such as C++. Also, if there is no support for the language built into our IDE, why the heck should we bother with it? I expect you'd get much the same reaction from most windows developers if you were to ask them why they don't program in Obj-C.



    That was a bit of a long winded rambling there.



    C
  • Reply 46 of 78
    Quote:
    Originally Posted by Celemourn View Post


    Yes, I was very sloppy with my language in that post.

    BUT



    You'd have to show me some evidence before I buy that bytecode can approach the speed of machine code. Bytecode MUST be translated into machine code before it can be used, thereby adding at LEAST one extra cycle for every command. How can that be anywhere close to the speed that you can get from a machine code compile? By using an efficient JIT compiler and an inefficient machine code compiler? Go get an efficient machine code compiler.



    Additionally: Every program written in C# requires .NET framework to be present on the computer... I THINK.... verify please?

    --------> No Wrong! - .Net is set of Libraries like any language you can do more with Libs than with out them...



    Additionally: C# is EXTREMELY high level. The higher the language, the less efficient it is, by necessity.



    C# isn't any higher level that Java or C++ it's a compiled language like all the others - including the mongrel Objective C!



    Additionally: C# does stupid things like require you to store the Main function (called methods in C#) as a class object. You then must instantiate an object of that class before you can use any functions that you may have written outside of the Main. That should be implicit.



    - Depends on the type of project you writting - di you every use C# -doesn't sound like it..



    Additionally: It's 3 am and I can't think of anthing else right now. Go with C++, and use visual studio if you wish, so that you can take advantage of the .NET libraries. You will have the benefits of C# (the library) and also the ability to use the same language on multiple platforms.



    I thnik it's always 3am in your mide read a book!
  • Reply 47 of 78
    Quote:
    Originally Posted by CyberXena View Post






    I thnik it's always 3am in your mide read a book!



    BRILLIANT first post, my friend! You got an ad hominem in, and a smilie, and typos and everything! You're off to a great start! Welcome to the forums.



    C
  • Reply 48 of 78
    splinemodelsplinemodel Posts: 7,311member
    Quote:
    Originally Posted by shetline View Post


    If people were willing to pay as much for software as they do for a 747, and to hire teams of software engineers to regularly inspect and maintain that software, I can imagine software and 747 crash rate statistics being very similar, although one would case would usually involve more deaths than the other.



    People do pay as much. Microsoft at least used to make more REVENUE per year selling windows and office than Boeing did selling aircraft, not to mention the fact that the profit was much higher as software has virtually zero cost-of-goods-sold (COGS). Yet it all was crap.
  • Reply 49 of 78
    vineavinea Posts: 5,585member
    Quote:
    Originally Posted by Splinemodel View Post


    People do pay as much. Microsoft at least used to make more REVENUE per year selling windows and office than Boeing did selling aircraft, not to mention the fact that the profit was much higher as software has virtually zero cost-of-goods-sold (COGS). Yet it all was crap.



    MS software quality was in the 95% range if I recall correctly. Higher than most of the software industry for a period of time in the 90s. Haven't been following that since.



    As far as MS making more money than boeing and the cost of software being lower that's crap. On a per unit basis MS obviously made far less. When you pay for high quality software it costs and arm and a leg but with equal quality levels as any other high quality engineering system.



    http://www.stsc.hill.af.mil/CrossTal...takerTian.html



    The number of maintenance events is trackable and probably does not differ much from the hardware subsystems on aircraft. When you have over a million lines of code that's a level of complexity that isn't any different than any other component on an aircraft.



    Go ahead and google 747 defects. Including one that downed the TWA flight.



    Who the heck is resurrecting 3 year old threads and why?
  • Reply 50 of 78
    Quote:
    Originally Posted by vinea View Post


    As far as MS making more money than boeing and the cost of software being lower that's crap. On a per unit basis MS obviously made far less. When you pay for high quality software it costs and arm and a leg but with equal quality levels as any other high quality engineering system.



    You don't get the economics. When you have something with 0 COGS, you can amortize the development dollars easily over large quantities of users. Planes do not have 0 COGS. In addition, planes of course have design-related cost but also manufacture-related cost, and the issues that go with. Software does not have manufacture-related cost or issues.



    I would argue that the design of Windows took more dev dollar than the design of, say, the 787. The estimated would-be dev cost of Linux is $1B, according to sloccount. To me this screams that software design and development paradigm are inherently flawed. I blame C/C++/C#/Java. Stupid-shit. Using the C-family of languages is like building a 787 with hand-tools. Studies repeatedly show that languages like Ada shave off massive amounts of software dev dollar (and it runs hella faster than Java). So a it costs less to design a super-reliable system. It's quite apropos, given that most flight control systems are still written in Ada.



    So that's the 180. This thread is years old. I'm not knocking SW developers, just the paradigm. I believe the paradigm is inextricable from the language.
  • Reply 51 of 78
    vineavinea Posts: 5,585member
    Quote:
    Originally Posted by Splinemodel View Post


    You don't get the economics.



    I do get the economic and I understand that you are trying to argue that because software distribution costs are lower (not zero as you imply) therefore total quality should be higher. The two aren't connected directly.



    Quote:

    When you have something with 0 COGS, you can amortize the development dollars easily over large quantities of users. Planes do not have 0 COGS. In addition, planes of course have design-related cost but also manufacture-related cost, and the issues that go with. Software does not have manufacture-related cost or issues.



    This is false. Productizing a software item does have costs and manufacturing and distribution costs are not zero. Secondly, development costs of aircraft are pretty high. The 787 has an estimated pure development cost of $16-18B (including all the cost sharing with Boeing's partners...about $10B for Boeing alone).



    I've done both in house and external software product development. I can attest that the latter is more expensive than the former and the costs are non-zero.



    Quote:

    I would argue that the design of Windows took more dev dollar than the design of, say, the 787.



    I would argue that a cursory google would have yielded that Vista cost MS $6B to develop and that $6B is lower than either the $10B or $16B estimates for the Dreamliner.



    Quote:

    The estimated would-be dev cost of Linux is $1B, according to sloccount.



    Which is bogus. I personally have around 50K sloc tabulated in Ohloh and personal knowledge of the dev costs on two open source projects (where all devs paid by a company) and the Ohloh estimates are at least an order of magnitude wrong. These are similar estimation methods to those used to quantify Linux development value.



    Quote:

    To me this screams that software design and development paradigm are inherently flawed.



    Bullshit. The value proposition of software is as high, if not higher, than comparable disciplines. think I quoted references three years ago so wont again.



    Quote:

    I blame C/C++/C#/Java. Stupid-shit. Using the C-family of languages is like building a 787 with hand-tools. Studies repeatedly show that languages like Ada shave off massive amounts of software dev dollar (and it runs hella faster than Java). So a it costs less to design a super-reliable system. It's quite apropos, given that most flight control systems are still written in Ada.



    I blame your superficial understanding of software development to make such broad unfounded assertions. Ada does not shave off massive amounts of software dev dollars, if it did, then industry would have adopted it. Instead, even DoD has moved away from it except for some real time systems. It has advantages in this specific domain but the software dev costs for this domain are significantly higher than normal software development.



    I've done flight system development. Have you?



    Quote:

    So that's the 180. This thread is years old. I'm not knocking SW developers, just the paradigm. I believe the paradigm is inextricable from the language.



    And you would be incorrect in your belief given that these are all still procedural languages you're talking about and there's no paradigm difference between them from the perspective of development methodology.
  • Reply 52 of 78
    I tried out Microsoft's Silverlight (basically, their answer to Java) and C# in a web application that I ran successfully on both a PC and a Mac, inside the browser. It is a simulator to test an idea I had about biological speciation. You can run it yourself at:



    http://www.tedtoal.net/speciation/



    You must install the Silverlight plug-in for your browser, which is a .Net virtual machine to support the application. It should prompt for the plug-in installation when you first visit the page.



    I did not focus much on making a fancy user interface; I just wanted to do the simulation and get results. What has impressed me about the project, though, is that (a) though I developed it on a PC under Windows, the simulator actually ran first time on a Mac; I had to make no changes whatsoever to make it run; (b) the user interface displayed the same way on a Mac as on a PC, and was usable with no problems; (c) the simulation ran at high speed on both PC and Mac; the just-in-time compilation aspect of C# and .Net worked like a charm!



    I'd like to switch to using a Mac, and get away from Microsoft tools, which are a time/money sink I can no longer afford. But I'd like to keep using C#, and Silverlight if possible. I guess Mono is the only option; I wonder how stable it is, and where it stands regarding Silverlight support?



    Ted Toal
  • Reply 53 of 78
    vineavinea Posts: 5,585member
    Quote:
    Originally Posted by tedtoal View Post


    I'd like to switch to using a Mac, and get away from Microsoft tools, which are a time/money sink I can no longer afford.



    You can't afford free? The Silverlight SDK is free and it can work with VS Web Express:



    http://stackoverflow.com/questions/1...studio-express



    Looks like the VS10 Express beta will work too.



    http://www.microsoft.com/express/Express-2010/



    Quote:

    But I'd like to keep using C#, and Silverlight if possible. I guess Mono is the only option; I wonder how stable it is, and where it stands regarding Silverlight support?



    Ted Toal



    Bootcamp or Virtualbox is your best answer. Mono, MonoDevelop and Moonlight are okay but you really want to develop natively and then see if it runs on the other platforms.



    I guess you could also try Eclipse for Silverlight.



    http://www.eclipse4sl.org/download/mac/
  • Reply 54 of 78
    I heard folks were playing with C# front ends for GCC (some supernatural pad of .NET compilers and preprocessors being known as CIL). But I doubt it resulted into something industrially interesting.
  • Reply 55 of 78
    vineavinea Posts: 5,585member
    Quote:
    Originally Posted by ivan.rnn01 View Post


    I heard folks were playing with C# front ends for GCC (some supernatural pad of .NET compilers and preprocessors being known as CIL). But I doubt it resulted into something industrially interesting.



    Ack...stay the heck away from trying to use any of that. The mono CIL-gcc stuff I don't think was ever completed after the GSOC project ended and the CLI backend/front end is also a bit of a science project. Mono uses llasm and laasm2 as their CIL compilers.



    If you're not going to use the MS toolchain just go with Mono to hide all that open source sausage making. Most of the other stuff is things only a free software zealot would use. Like gcj only less developed and more broken.
  • Reply 56 of 78
    Quote:
    Originally Posted by vinea View Post


    Ack...stay the heck away from trying to use any of that. The mono CIL-gcc stuff I don't think was ever completed after the GSOC project ended and the CLI backend/front end is also a bit of a science project. Mono uses llasm and laasm2 as their CIL compilers.



    If you're not going to use the MS toolchain just go with Mono to hide all that open source sausage making. Most of the other stuff is things only a free software zealot would use. Like gcj only less developed and more broken.



    No, no, I couldn't care less about C#.
  • Reply 57 of 78
    vineavinea Posts: 5,585member
    Quote:
    Originally Posted by ivan.rnn01 View Post


    No, no, I couldn't care less about C#.



    I was trying to keep you from steering ted down a rabbit hole and wasting a lot of time.



    If you don't care about C# then why answer about something you're not interested in and likely not familiar with?



    I would normally steer Ted toward Java except that Java on OS X is moderately annoying as well. Mono probably isn't that much worse and C# as a language has advantages over both Java and ObjC. Disadvantages too but on the whole much higher clarity and less cruft.
  • Reply 58 of 78
    Quote:
    Originally Posted by vinea View Post


    I was trying to keep you from steering ted down a rabbit hole and wasting a lot of time.



    If you don't care about C# then why answer about something you're not interested in and likely not familiar with?



    I would normally steer Ted toward Java except that Java on OS X is moderately annoying as well. Mono probably isn't that much worse and C# as a language has advantages over both Java and ObjC. Disadvantages too but on the whole much higher clarity and less cruft.



    It's all explained in my first post on the topic. Ted wasn't asking us about Java, it was about C#.
  • Reply 59 of 78
    ameristamerist Posts: 77member
    Quote:
    Originally Posted by Celemourn View Post


    C# is the microsoft spawn of satan java hack that is windows only. Go C++ or use the OSX development tools from Apple



    C# programs are just scripts passed to the runtime, which translates them into machine code on the fly. slow as shit. I'm not aware of any way to compile directly into a real executable. It should be avoided at all costs.



    I'm correcting your misinformation. C# can in fact be compiled to machine code using Ngen, although the target machine still requires .net framework for the executable to run.
  • Reply 60 of 78
    ameristamerist Posts: 77member
    Quote:
    Originally Posted by tedtoal View Post


    I tried out Microsoft's Silverlight (basically, their answer to Java) and C# in a web application that I ran successfully on both a PC and a Mac, inside the browser. It is a simulator to test an idea I had about biological speciation. You can run it yourself at:



    http://www.tedtoal.net/speciation/



    You must install the Silverlight plug-in for your browser, which is a .Net virtual machine to support the application. It should prompt for the plug-in installation when you first visit the page.



    I did not focus much on making a fancy user interface; I just wanted to do the simulation and get results. What has impressed me about the project, though, is that (a) though I developed it on a PC under Windows, the simulator actually ran first time on a Mac; I had to make no changes whatsoever to make it run; (b) the user interface displayed the same way on a Mac as on a PC, and was usable with no problems; (c) the simulation ran at high speed on both PC and Mac; the just-in-time compilation aspect of C# and .Net worked like a charm!



    I'd like to switch to using a Mac, and get away from Microsoft tools, which are a time/money sink I can no longer afford. But I'd like to keep using C#, and Silverlight if possible. I guess Mono is the only option; I wonder how stable it is, and where it stands regarding Silverlight support?



    Ted Toal



    I use XCode on Mac for Mac development and VC# Express on Boot Camp (Windows XP) for Windows Development. One machine does both, but in separate environments.



    Sure, the Visual Studio professional products are a money sink but IMHO they really are the best development tools for making Windows programs. Definitely look into using WPF applications if you haven't already! (requires .net 3.0 + / Visual Studio Express 2008 or 2010)



    I assume you've used the Visual Studio Express products (which are free) ? If not maybe that will change your mind. I do 99% of my work in VC# Express 2008 and would only use the full suite if I needed to make an MSI. I'm toying with the idea of using VC# Express 2010 soon but at this time I really don't need anything that .net 4.0 adds.
Sign In or Register to comment.