Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have a strong desire to leave windows. Windows 8 seems to enrage me more every day. Unfortunately, the majority of my experience is with C# :(


Chiming in on the "get on Mono" train: it's true, you should get aboard ASAP.

I don't quite agree on the 'learn' part though, because it may sound frightening when for most purposes it is a direct C#+.Net port, so there's basically nothing to learn on the language/library front. It mostly revolves around the tooling (MonoDevelop is different from VS, mcs is different from the MS C# compiler, xbuild is different from msbuild, but source code is the same, assemblies are the same, sln/csproj files are the same). You will mostly lack WPF if you ever used it, and learn to use Path.Combine instead of hardcoded string concats and backslashes in paths (i.e write portable code), but you will benefit from having many Mono-only or Mono-bundled tools (csharp REPL[1}, ) and libs[0].

Miguel de Icaza regularly (re)tweets and promotes various community activities and achievements, so I recommend to follow him to get a feeling of what happens.

If you're daring enough, you can get on board and use emacs, which seems to be what the non-IDE Mono developer community revolves around, so emacs modes should be quite good (apparently, F# support is coming up nicely[2])

[0]: http://docs.go-mono.com

[1]: http://www.mono-project.com/CsharpRepl

[2]: https://twitter.com/simontcousins/status/293329223597297664


I worked on the backend team for a project at Aol which was written in C# and while most of my teammates used VS, I hated it and used vim on linux instead. I was able to successfully compile all of their code while sharing the same project files. Mono is really a great C# port, in running as well as building.


This.

Mono is awesome. I haven't used linux in years, but I managed to install linuxmint and setup Mono + Nginx + ServiceStack over the weekend. It's a bit difficult at first, but when it works it's nice. You can even build in visual studio and copy the files over to your linux box.


Off topic.

What's with the comments that start with "This."? What is "This." suppose to mean as an introduction?


Sort of short-hand for "I agree with this". I think (? please correct me if wrong, someone) it started on Reddit.


I've heard it in real life far before that. Its a way of re-emphasizing something that was just said.


It's another way of saying "ditto".


If your BIOS supports booting from USB, you can try Ubuntu without the hassle of having to install it and all the partition troubles that come with installing any OS.

All you need is an USB stick of 2GB. Instructions can be found here: http://www.ubuntu.com/download/help/create-a-usb-stick-on-wi...

After that you just insert it before booting, go to your BIOS, pick boot from USB, wait for it to load and then pick "Try Ubuntu". You'll get the full blown experience of the Ubuntu operating system, and can snoop around and get a general idea of how it works. Should your interests not be met, you can just shut down the session and computer, remove the USB stick and it'll boot Windows like it always did. That's all there is to it.

Should you however want to get your feet wet, I'd say install it as a Dual Boot, or install it on an older machine you have lying around. You'll get to see it come to life after using it for a more lengthy period of time.

Don't worry about C#, Mono can suit you if that need must be met, and if you're proficient in C#, Java will be very easy to master. A year ago, I wrote my Master's thesis in C#, using a Microsoft Surface (tabletop). But I've shifted my attention to Ubuntu 12.10 and Android since, and that transition went very smoothly.

As a rule of thumb: A computer should make my work easier, at the first glance that there has been a sacrifice in workflow or efficiency, I'm out.


I've been using Win 8 for about 4-5 months now, and I love it.

We've started to roll it out to power users in various companies (i.e. people that ask for it), and I have yet to have anyone say anything negative about it.

You read a tech blog though and they act like it's the apocalypse.


What do you love about it exactly?

I find that shutting it down and even putting it on standby requires too many actions.

Metro app's don't fit in with the desktop version, they should run as a desktop app. Running a metro app breaks the Windows key which instead of bouncing you between desktop and the start screen will bounce you between the metro app and start screen..

Multiple monitors. Windows 8 corners become iffy on the join between monitors. (Why not just remove these hover areas?) The start screen seems to randomly choose a monitor to appear in. For some reason my right monitor doesn't have the clock. On the desktop, both monitors have my application icons at the bottom yet the program opens on the last monitor it was opened on instead of the monitor in which you press the button.

I love the start screen. I think its so much better than the Windows 7 start button. I think Windows8 is alright in the same way Vista was alright. It was better than XP but had a bunch of annoyances. I can see why people like Windows 8 but I can't see why anyone would say they love it.


For the Start screen - it opens on the monitor you last did something in "metro" on. For example, if you opened the Charms bar (Win+C or hot corner), and open "Settings," Start will now open on that monitor. You can always force the Start screen to open on your monitor of choice by opening the Charms bar on that monitor and clicking on "Start" or by using the lower left hot corner. However, there's no way (to my knowledge) of doing this with the Windows key alone.

For the taskbar issue, you can change that. Right-click on the taskbar, choose "Properties." Under "Show taskbar buttons on:" select another option. I personally prefer "Main taskbar and taskbar where window is open." But to each his own.

Good luck!

Full disclosure: I am a Microsoft employee.


> You can always force the Start screen to open on your monitor of choice by opening the Charms bar on that monitor and clicking on "Start" or by using the lower left hot corner.

I wouldn't call that "force". It's more like "constantly remind".


*Correction: As noted by another user, Win+Page Up and Page Down can be used to change the monitor on which the Start screen appears. Apologies for any confusion - I forgot about this hotkey.


> Good luck!

Says it all, doesn't it?


Your comment says more about HN commenters than his says about Windows.


I find that shutting it down and even putting it on standby requires too many actions.

Which is what finally got me to start using the power button, which is still just one action.


That kind of defeats the purpose of having software controls. You can as well unplug the whole thing or remove the battery violently on a laptop and claim "it's still as straightforward as before!".


How do you interact with software? With keys/buttons. Think of power button as another key. Microsoft conditioned all of us to never ever touch that power button, but it is all right now. I promise.


The power button is a software control. It generates an interrupt, and the operating system shuts down the computer. For all purposes, the exact same deal as if you hit the software power button.


I know what you mean, but a button is a physical control nonetheless. You are just playing with words :)


How is it different from a key on a keyboard, or a mouse button on a mouse?


Not exactly. When you consider the legacy Desktop also as an app, the behavior is consistent. Windows key just swaps between the start screen and the current app.

Start screen appears on the last monitor you launched the modern app or charms.

For switching Start screen between multiple monitors, try Windows + PageUp (or Windows + PageDown).

You can change the taskbar settings. Right click on taskbar -> properties -> Taskbar where window is open (under show taskbar buttons on).


> I find that shutting it down and even putting it on standby requires too many actions.

Make sure no windows have focus (i.e., click on the background) and hit ALT+F4. This also works in vmconnect and remote desktop windows, where hitting the corners is near impossible.


Why not use Windows 7? It's so far my favorite version and from what I've seen, Windows 8 is complete trash (this is what happens when you try to force tablet interfaces onto desktop users). There's nothing wrong with going back a version.

Switching to linux is a great idea, but I suggest you make the switch gradually: use a VM (ie Virtualbox) and install a popular distro (Ubuntu seems good for newer linux users). Try it in fullscreen mode for a while and if you get stuck/frustrated, Windows is always there to welcome you back with open arms.

Then again, there's something to be said for just diving in and figuring it out...depends on what your goals are.

Also, as mentioned, check out Mono. It's a very good framework if you use C#.


I've used Win8 since the launch now (before I was using CentOS) and just yesterday I installed a Win7 VM because I needed to test a few things and Win7 felt like something from the last century. Everybody should upgrade to Win8. It's my favorite version.

So you see, we can play the i-like-this-so-should-you game until our Sun explodes. We won't have accomplished much though.


apparently, win8 has some performance improvements over win7 (this is like a tertiary source, so take it with a grain of salt), which might be attractive to some for upgrading


One way to break free of C# is to get familiar with the JVM by building a side project using Clojure or Scala. You'll be able to read Java just fine so that is an option too.

Another option is to learn how to develop mobile apps for iOS and/or Android. Those skills are in strong demand and your skills with an IDE and debugger will transfer easily.

I switched from C# 3 years ago and haven't touched Windows even for personal use in almost a year. If you need any other tips or guidance feel free to reach out to me (email is in my HN profile).


I used to loathe Java and love C#... but I was a die-hard Linux user and I couldn't get in the MS train.

But then I found Scala... heh... screw C#.


There is always a reason to stay with Windows. This one is new to me, but understandable. Other popular reasons: Tool XY is Windows/Mac only, no Games on Linux, Hardware XY won't work...

The best way to start is using a dual-boot configuration, you cannot do much wrong with Ubuntu 12.10. And then, slowly but surely you can switch to Linux. This process took me about 5 years. (It finished when XP didn't boot anymore because of a blue screen.)

Regarding C#... Learn Mono, then you'll be at the spearhead of Cross-Platform C# usage. ;-) (Or add another language to your experience portfolio.) And checkout VMWare and VirtualBox...


Your opening sentence makes me wonder: why does it have to be an all-out switch?

When you need a car for getting places and a truck for moving things, and you can afford both, you don't need to choose between one or the other. You can have both, and use each for what you need it for. Operating systems are not a life-choice; they do not demand exclusive relationships.


Convenience and it's a time saver. I can only tell from my experience during a certain time:

* my cheap TV card only worked on Windows reliably

* most cool games did not work on WINE (and Unreal Tournament can become boring after some time)

* Webcam did not work on Linux (in fact until 2 or 3 years this was still a big issue)

* One word: MS Office

* many websites did only work on Windows

Yes and that's when you dual boot. So when listening to music and web surfing on Linux, I couldn't write a letter on Linux. Because StarOffice/OpenOffice had significantly lower quality than MS Office during that time. I couldn't play a video game and afterwards browse through my MP3 collection.

In such a situation you will almost naturally stay with the system that has most features for you, i.e. Windows here.

Today's "migrators" are lucky because emulator technology has evolved a lot and modern consumer (multi-core!) CPUs have some serious virtualization support. Moreover many applications moved to the Web. 10 years ago the only thing genuinly cross platform where some super ugly Java apps.

By the way, I am a Linux, OS X and Windows user. However the stuff I use works (luckily) on all 3 OSs. (Ok, I'm honest, not on Windows. ;)) Nowadays I enjoy switching computers and OSs, however this is only possible because I use Unix stuff and that just works almost everywhere.


Being poly-operating-system also gives you a unique viewpoint and can be an advantage in most things, provided you're using each OS for what they are best at and not just trying to emulate a different OS.


I do all my work in Linux and when I'm coding, spend about 90% of my time in Linux, but for my most recent setup, I elected to run my Linux install in VirtualBox on a Windows 7 host and this has worked very well for me so far. I use a tiling window manager and spend most of my time in terminals anyway (vim is my editor of choice), so its not like my install requires a lot of resources - its almost like running a terminal in a fancy window. I use windows for (non-documentation) related web browsing, for using Visio, Office (since my other team members use it, I find its less trouble if I do too) and Balsamiq and, most of all, for playing games.

Very happy with this poly-OS setup.


I've been using Windows 8 on a gaming PC I built myself for the first time in 6 years (I've been using Macs for work since), so I completely missed all versions of Windows between XP and now.

While I love the initial Metro start screen experience, two things really drive me crazy:

1. Metro just seems tacked on. Why can't I stay within that experience all the time? Instead I'm ejected to the normal Windows desktop that is essentially what I was using on Windows XP years ago. It's like they didn't have the balls to go all the way, and coming from Apple that drives me crazy.

2. It's very easy to get lost in Metro once you start clicking around. There is generally never an obvious way to get back to where you were previously due to the absence of any depth, breadcrumbs, or even just a "back" button. Hell, you can't even right click and go back.


Check out Mono, it's a cross-platform .NET runtime. You'll have to give up your Windows-specific knowledge, but C# the language works fine.


Also check MonoTouch and Monodevelop. Use C# and compile to Android and iOS.


Check out Python. You'll regret spending time with C#.


I wouldn't say Python would make you regret spending time with C#, in fact, his experience with a language like C# will be beneficial to his coding patterns.

Python is an awesome language, but don't mistake the fact that C# is also a very good language and often times a perfectly valid language to use.


Python's dynamicness is something you love and hate. Same goes for JavaScript (at least strict mode JS) in my experience. It's much nicer having the compiler tell you there's an undefined variable instead of the runtime.


Leaving your comfort zone can make you accomplish amazing things.


I'm in a similar boat, but thankfully my experience in C# wasn't comprehensive. I'm now typing this from Ubuntu. Windows as many seem to indicate isn't bad.

Linux gets my work done, and Windows for designing & entertainment. Dual boot and you won't miss anything (Ubuntu can read/write to NTFS)


Don't even need to do that -- I have Ubuntu windows open on my desktop via HyperV.

It just works.


You can transition that experience to other languages. Try out Java or Scala.


Even if you don't switch to linux I would strongly recommend learning at least one other programming language, if you are interested in programming.


I actually know several languages, on my free time I mainly use C++ and while I've only played with it I like go and Clojure. I just don't have any professional experience with these languages yet (other then some MFC stuff using C++ though i'd prefer not putting that on my resume in fear someone might want me to actually use it haha)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: