|
Dar Brett wrote: I have plenty of reasons why I prefer Linux as a development platform
The topic at hand is that Linux lets you do things Windows users can only dream of. I was simply looking for examples. Being able to re-compile the kernel, have multiple clocks or no in-built AV software are not things I can only dream of, they are things I really couldn't care less about.
|
|
|
|
|
Well if you're not concerned with better user interfaces, privacy, security, efficiency, automation, cost, or system longevity - then I don't actually think you'll find any reason to prefer any operating system over another.
|
|
|
|
|
There is no proof Linux is better at any of those things, as I said people like to regurgitate things they hear elsewhere. The person who started this strand even said that one of the advantages to being able to recompile the kernel was to remove the non-secure code.
|
|
|
|
|
Well I know for sure that there's definitely evidence for superiority in privacy, security, and efficiency.
Cost and System Longevity are a lot more difficult to compare. My opinion is that on a small scale Windows is more cost effective, while large scale Linux is far more cost effective.
User interfaces is pretty subjective, but I think it's a much safer bet to assert that different types of user interfaces are better for different types of tasks, than to assert that one single interface is best for all tasks.
And I'd agree - being able to remove non-secure code from any application is an advantage if you're going to do that. If you're not going to do that then it's no benefit to you.
|
|
|
|
|
Dar Brett wrote: Well I know for sure that there's definitely evidence for superiority in privacy, security, and efficiency.
No there's not. Secunia are an organisation that track vulnerabilities in products and here is their top 20 for 2014
RANK | PRODUCT | VULNERABILITIES
1 GOOGLE CHROME 504
2 ORACLE SOLARIS 483
3 GENTOO LINUX 350
4 MICROSOFT INTERNET EXPLORER 289
5 AVANT BROWSER 259
6 IBM TIVOLI ENDPOINT MANAGER 258
7 IBM TIVOLI STORAGE PRODUCTIVITY CENTER 231
8 IBM WEBSPHERE APPLICATION SERVER 210
9 IBM DOMINO 177
10 IBM NOTES 174
11 MOZILLA FIREFOX 171
12 X.ORG XSERVER 152
13 APPLE MACINTOSH OS X 147
14 IBM TIVOLI COMPOSITE APPLICATION MANAGER FOR TRANSACTIONS 136
15 VMWARE VCENTER SERVER 124
16 IBM TIVOLI APPLICATION DEPENDENCY DISCOVERY MANAGER 122
17 ORACLE JAVA 119
18 VMWARE VSPHERE UPDATE MANAGER 111
19 IBM WEBSPHERE PORTAL 107
20 MICROSOFT WINDOWS 8 105
Seems to me that if you want a secure OS that Windows is one of the best options. Linux people always go on that it is "more secure" but that's just words, when you look at the facts the truth never backs them up.
|
|
|
|
|
Weird that IBM is so prominent on the list isn't it?
Now I'll concede that Windows isn't the security nightmare it used to be (I'm thinking pre-UAC), you've actually got me kind of curious now about what the distributions of severity by vendor might be.
I may be spending my weekend drawing charts now.
Anyways, based on The Lounge rules I think we should probably stop talking about our religions...
|
|
|
|
|
Dar Brett wrote: Developing on the same platform as you're developing for is a good idea - I'd raise an eyebrow if a .Net developer was using Linux
I write server software. Never worked anywhere where I got to use exactly the same environment as the production environment. Because the production machines cost too much. Actually was a problem at one point because single CPUs could not test dual CPU threaded code. Several times that produced production bugs.
That has not been a problem for quite a while now with a multitude of VM solutions.
|
|
|
|
|
Not sure where you work but in the corporations that I have worked IT support services do not want normal users messing with the OS at all.
So, for example, I wouldn't expect that Munich IT wants the DMV users to alter how the work stations get updated.
|
|
|
|
|
Jeremy Falcon wrote: but one such example is recompile the kernel to remove uneeded code for a specific server environment
Been doing server side development for more than 20 years, including on unix systems. Never had a single need for that and never had a single unix developer suggest such a need.
Rather certain that employees of a city (Munich) using desktop machines would never have such a need either.
|
|
|
|
|
Jeremy Falcon wrote: However, you can do things with it that people only dream of in windows.
Such as?
I was using perl on a PC DOS box. PC DOS as in the precursor to Windows. Windows might have been in the Windows 286/386 version then but it ran on top of PC DOS so it would have support perl too. I have been using perl ever since on Windows boxes.
I have been doing raw socket access probably since about windows 95.
Java supported actual threads on windows boxes when it was first released unlike the horrible 'fork' implementations that existed on unix boxes and the ineffective pseudo thread implementation of 'green threads'.
|
|
|
|
|
swampwiz wrote: But in terms of using Linux as a day to day OS, NO WAY! To each his own; I'm not going to trade in a machine that "just works" for anything Microsoft.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
nobody takes OS advice from the City Of Munich
|
|
|
|
|
I've already summarized my own experience with Linux in a similar thread a good while ago, and it went along something like this:
When it works out of the box, it's a fine OS and you can probably learn a lot from it.
If it doesn't work out of the box or just starts misbehaving on its own - well, good luck. The problem is surely solvable, but you'll have to find just the right keywords to find relevant results on Google.
What helps in my case is that I mostly stick with VMs, and given that there is Microsoft code in the Linux kernel nowadays that allows it to run well under Hyper-V, it tends to be a good match and Linux "just works" with that known virtualized hardware.
The same can't be said however if you're using some Linux distribution that doesn't formally have Hyper-V support, or you're running on bare metal and happen to have some compatibility issue. At that point, that's when you start wondering why you're making this your problem ("you've got the source! Figure it out and submit a patch so we can all benefit from it!") rather than somebody else's.
|
|
|
|
|
I presume that the city is supporting the OS with their own staff.
I wonder how much they pay those people compared to the commercial market.
|
|
|
|
|
Ok, try not to laugh at the title. Right now, I assume there is no real future in WinForms. It's gonna be the next VB6 if not already, as in it'll hang around but people are gonna look at it funny. That being said, I just had a job interview with a guy who I really like. He's got an entrepreneurial spirit which I jive with. Right now, for the job, the main app in question that I'd be working on is an 8 year old product based on WinForms.
Should I get the job, and to plan for the future... I know WinForms isn't going anywhere. But for the big picture, think 10 years from now... we all know .NET Core is being shown the love. So, my question is, if I wanted to write a Microsoft-backed thick client application in C# that's possibly cross platform... what options do I have? I know Xamarin is one. Is that the only one?
And of course, there's things like wxWidgets, Qt, and even GTK+ with C# bindings, but is Microsoft cooking up some Windowing/GUI juju meant to be cross platform that I just don't know about yet? Like most LOB apps, this is a MS-centric shop, so I'm just curious to know what the latest buzz is on the geek street.
Jeremy Falcon
|
|
|
|
|
Anything where the UI is specified via XAML is probably a good idea, even WPF (it's less deprecated than WinForms ).
Universal Windows Platform[^] might also be a starting place.
Software Zen: delete this;
|
|
|
|
|
Yeah I thought about WPF. Being a web guy, I like declarative UIs too. But, in the interest of cross platform I'd doubt that's ever gonna be ported since it'll be a cold day in hell before MS uses OGL for a rendering pipeline.
Then again we have SQL Server on Linux now, so who knows.
Jeremy Falcon
|
|
|
|
|
Do I sense some ego here? If the app was successful in WinForm for 8 years, it may be in the right platform. I don't look at any applications and question they should all be in the web platform or cross platforms. The app's platform depends on its purpose. I'm having to rewrite web-based applications into desktop, and yes it is rewritten in Winform, and some from desktop to web. Unless the application has broad customer base where it may specifically call for cross platform, stay where it is safe.
|
|
|
|
|
Jeremy Falcon wrote: he main app in question that I'd be working on is an 8 year old product based on WinForms. If you're tasked with writing new UI components, you could build them in WPF and host them in the existing WinForms app.
FWIW, I'm in the process of porting this[^] WinForms app (30K lines of code) to Android, and later iOS. I'm using Xamarin to build a native UI and 99% of the business and persistence layer has been portable without any changes. One of the huge wins using Xamarin is that a user can take their desktop database file and plop it onto their Android device (and vice-versa) with no problems. (In reality, they don't have oto do this manually. I've written a cloud backend that lets them sync their data between the desktop and mobile versions of the app.)
I'm a big fan of WinForms and Xamarin and not ashamed to say it. The productivity gains are awesome.
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: If you're tasked with writing new UI components, you could build them in WPF and host them in the existing WinForms app. That's a thought, although it would be nice to find something cross platform. Anyway, this is all food for thought. I don't have the job yet, and if I get it there are things taking a higher priority for the moment. But I do like knowing my options.
Ravi Bhavnani wrote: FWIW, I'm in the process of porting this[^] WinForms app (30K lines of code) That's cool man. I remember this app. It's neat.
Ravi Bhavnani wrote: I'm a big fan of WinForms and Xamarin and not ashamed to say it. The productivity gains are awesome. I'm just fishing for options to know what's out there. It's not so much about shame as it's just seeing what's out there. So many tech people insult every decision ever made to try and sound smart; that's not what I'm doing. Just wanna know what's out there.
Jeremy Falcon
|
|
|
|
|
Ravi - I'd love to hear how truly "cross platform" your Xamarin application is. Are you able to run on Windows / Mac / Android / iPhone / Linux ?
My understanding is the C# business logic translates, but not the UI or XAML. Can you confirm from your experiences?
<hr>
"Qulatiy is Job #1"
|
|
|
|
|
The C# business logic and persistence layer is almost 100% cross-platform compliant, thanks to Xamarin, which means I don't have to do much more than smoke testing on the Android port, since the codebase is mature and has an existing suite of tests.
The Android UI is a brand new effort and isn't cross-platform, because I decided I want to learn Android from the ground up before I consider using Xamarin Forms as an abstraction layer. If I decide to port my app to iOS (likely), I will first write a native iOS client for the same reason.
I'm only considering Windows, Android and iOS as target platforms.
/ravi
|
|
|
|
|
If you don't mind my asking, how do you connect the compiled Xamarin C# code to the UI layer in Android? Do you connect the layers like you might with a DLL resource in windows?
<hr>
"Qulatiy is Job #1"
|
|
|
|
|
Since both the Android UI layer and the legacy business logic and persistence layers are all written in C#, there's nothing special I need to do. I chose to put all the code in a single assembly (the Android executable) for now. When I (eventually) get around to building the iOS app, I'll move the non-UI code to a separate assembly that will be consumed by both flavors of the app.
/ravi
|
|
|
|
|
Much thanks!
<hr>
"Qulatiy is Job #1"
|
|
|
|