

Developing a Raspberry PI app with Visual Studio - sysprogs
http://visualgdb.com/tutorials/raspberry/

======
ne0phyte
Why is everything an _App_ these days?

I know an _App_ as a small, simplified, specialized application, usually on a
mobile device, that serves a single purpose.

The Raspberry PI is basically a full computer so you can build and run
everything and whatnot on it.

~~~
orangethirty
App is shorthand for application.

~~~
jlgreco
Does that make /bin/ln an App?

~~~
ne0phyte
When you hear someone talking about apps/an app do you think of Apache, JBoss,
KDevelop, Chromium, ... or rather Angry Birds and WhatsApp?

~~~
bitwize
"App" has been short for "application" since the DOS days (hence expressions
like "killer app").

------
orangethirty
As good of a tool as VS is, I don't see how it fits with the Rpi. In my
opinion, its simpler to use a text editor, because the board does not have the
same complexity of .NET apps. The Rpi is programmed with Python, and their own
library tat controls the I/O pins. Why add in the complexity of VS into the
mix?

Plus, you can just use the IDLE. It features all the basic things you need for
python development.

~~~
bunderbunder
Your impression that the Raspberry Pi is exclusively programmed in Python and
is only meant for tiny little toy projects is mistaken. It's a full-fledged
computer running Linux, and will support software written using essentially
any programming language.

If you take a look at the linked article, for example, you'll see that the
author is programming it in C++.

~~~
orangethirty
I own a couple of these, and know what they are capable of. But I do see where
I missed the point, and its not the one you are making. I forgot that there
are people who love using VS and will want to use it for their projects. The
article helps those people.

------
ChuckMcM
Ok, sysprogs is clearly an account created just to spam HN with this link,
(guess they win, it made it to the front page) but really? This seems very out
of sync with both the Raspberry Pi goals, and the world in general. How about
'vi hello.c; make hello; ./hello' ? Pretty simple yes? Woohoo my first RaspPi
"app"! But this crappy toolchain? Really?

Ok so perhaps I'm too harsh here but I think the nice thing about the RasPi is
that you get to actually talk to the machine and experience "real"
programming. This seems to be a parody of everything that is wrong with
development today.

~~~
sysprogs
Hey, what about all those guys that are used to "Plug-and-play" tools like
Visual Studio? That don't want to rediscover the common problems and spend
countless hours trying to figure out how to do something slightly less trivial
than just Hello, World? What if somebody just wants to get things working fast
and does not want to learn how to make the cursor move up in vim?

There are for sure a lot of guys used to simple tools like vim, but there are
also plenty of people that believe that tools are just tools and the more
intuitive the tools are the better it is.

And as for the development today, it's becoming more and more about the result
and not about the process. About how fast you can get your application or game
up and running. And hours spent on figuring out why something is not working
when it should is becoming rather an avoidable annoyance than the experience
of "real" programming.

~~~
wwweston
> the more intuitive the tools are the better it is.

"Intuitive" is a pretty vague virtue, and I'm not sure that VS has it.

If we're talking about discoverability of a feature, I guess you could say a
tool that exposes most of its options and features through a wide swath of
icons and giant tree of menus leading to various dialog boxes of doom has
something of an edge in that one can walk down all the paths until a desired
option is found (or not found), and each point is something like a flag that
says "Hey, feature here!" Then again, it's hard to tell how relevant or
irrelevant it is to what your needs are, and I can similarly walk/search
through documentation for a given text editor until I accomplish the same
thing.

> What if somebody just wants to get things working fast and does not want to
> learn how to make the cursor move up in vim?

There are some pretty nice text editors out there that have keybindings
considerably more intuitive than vim. Even gvim has two intuitive ways to move
the cursor (arrow keys + mouse).

There's the question of which keybindings are most rewarding to the user who
puts time in, too. The longer you're going to spend in a tool, the more
important this is relative to how easily discoverable features are.

> it's becoming more and more about the result and not about the process.

Becoming?

> hours spent on figuring out why something is not working when it should is
> becoming rather an avoidable annoyance

Certainly not my experience with Visual Studio over the last year.

~~~
bitwize
_a tool that exposes most of its options and features through a wide swath of
icons and giant tree of menus leading to various dialog boxes of doom_

To a certain class of developer, not exposing every feature in this way is a
CRITICAL SECURITY BUG. See:
[http://web.archive.org/web/20040701202236/http://www.worldte...](http://web.archive.org/web/20040701202236/http://www.worldtechtribune.com/worldtechtribune/asparticles/buzz/bz12282002.asp)

------
meaty
That's one of those toolchains which just makes me go: huh?

I don't really understand why this exists let alone why anyone would want to
use it.

For ref I sit in front of visual studio 4 hours a day and am pretty handy with
gcc/gdb/vi as an alternative stack so I'm not particularly biased.

~~~
sysprogs
That's probably because people are different. And so their tastes and habits
are. That's why there are Windows, Linux and MacOS all co-existing in
parallel. That's why there are iPhone, Android and Blackberry. That's why
where are Mercedes, Toyota and Chrystler...

I guess, you just like the command-line tools more, as many other guys do. And
lots of other people really enjoy GUI tools such as Visual Studio. And the
goal of the article is to show those guys that they can now enjoy their
favorite IDE while developing for Raspberry PI.

~~~
meaty
Yes but we don't cut the Mercedes in half and weld it to the Toyota...

------
mintyfresh
While I'm of the opinion that tinkering away with a Raspberry Pi is inherently
a great thing, developing for a minimalistic piece of nearly open source
hardware running an open source OS using software as bloated and proprietary
as Visual Studio really rubs me the wrong way.

~~~
sysprogs
In fact, that purely depends on your goals. If you're just tinkering around,
the text editor or something simple like CodeBlocks or KDevelop is probably
fine. If you are doing a bigger project where productivity becomes a must and
spending time on doing the same routine things over and over becomes annoying
- an IDE as powerful as Visual Studio can be a really good investment...

------
JeremyMorgan
As someone who is fanatical about both Visual Studio and Raspberry Pi I think
this is awesome. It likely won't be a big seller though.

People use the Rpi for hacking and tweaking, and VS is better suited for
enterprise development work. You're basically using a space shuttle to drive
to the grocery store. Many of the things that make VS great aren't really
going to apply to the Rpi anyway.

Most of the "apps" that will built for the pi are going to be homebrewed stuff
for education and I think you can build most of those with conventional Linux
tools. But if you already have Visual Studio and your comfortable with it,
investing $100 in this program would probably be worth it if you want to build
a serious pi app.

~~~
dschuler
Can you elaborate on what makes Visual Studio so great? I used it
professionally for a year, but it would just grind on my productivity. I
wonder if I'm missing something. Specifically, VS 2010 had a lot of strange
bugs - mt.exe fails during the build (solution: build again), project
dependencies don't always work (solution: pre-build subprojects manually),
little refactoring support (whole tomato is slight improvement). The debugger
is quite good though, minus the part where it points to the next instruction
in the stack frame (which reflects the IP, but still).

Maybe this is just their C++ support? Is C# better?

~~~
sysprogs
How about that? <http://visualgdb.com/debugging/>

------
zokier
Spam for $99 shim for gdb.

~~~
sysprogs
Well, you could also say that gcc is a 10-megabyte shim for the GNU assembler
and would prefer to code each and all your programs in assembly language.
However at some point you would probably get bored computing the stack offsets
manually each time and would let the C compiler do it for you, while you think
about more high-level problems. Same with debugging. GDB itself is cool for
small simple projects, but once your project becomes large enough, you would
probably just enjoy clicking on a line to make a breakpoint and hovering your
mouse over an expression to see itsvalue rather than typing the line numbers
and variable names manually each time and keeping it the back of your mind
where was the breakpoint #42...

And, BTW, if you're a student, it's only a half of the $99 for you...

~~~
tjdetwiler
Personally once I ditched VS/Eclipse for the command line counterparts (vim,
tmux, gdb, etc) I haven't looked back. I find that once you learn the
underlying tools well your productivity will actually increase vs using
bloated GUIs that seem to change every software version.

To each his own though.

~~~
meaty
Agree with this entirely. Plus monolithic blocks of crud like visual studio
are hideously unreliable I find.

