Carefully, Correctly Wrong ([info]diffrentcolours) wrote,
@ 2009-01-11 23:06:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Current mood: aggravated
Current music:Nick Cave and the Bad Seeds - "Today's Lesson"
Entry tags:geek

Management Speak
I hate monodevelop on principle. It doesn't invite you to create programs, applications or even projects, it invites you to create...

...solutions.

When I've finished hating it with the fire of a thousand suns, I might see what C# is like to code with.




(23 comments) - (Post a new comment)


[info]lazrus_armagedn
2009-01-11 11:16 pm UTC (link)
Do you like Mono?

(Reply to this) (Thread)


[info]diffrentcolours
2009-01-11 11:30 pm UTC (link)
I hear you can get antibiotics for it these days.

(Reply to this) (Parent)(Thread)


[info]lazrus_armagedn
2009-01-12 12:00 am UTC (link)
Heh

But, seriously, given that you don't like C# Mono, why should you like Mono C#?

(Reply to this) (Parent)(Thread)


[info]diffrentcolours
2009-01-12 12:06 am UTC (link)
I didn't say I didn't like Mono, I said I didn't like the particular IDE I was using. And that's just because what its first dialog box said to me - I haven't really used it at all yet!

(Reply to this) (Parent)(Thread)


[info]lazrus_armagedn
2009-01-12 12:11 am UTC (link)
Ah

Yes, I can understand that

But I'm an oldskool programmer - I don't like IDEs on principle ... I wanna see all my code, right here, right now

Gimme a text editor and a compiler any day!

(Reply to this) (Parent)(Thread)


[info]t3knomanser
2009-01-12 02:17 am UTC (link)
Ugh, why? I'm of the mind that as much code should be autogenerated as possible. When I'm stuck working in non-IDE environments, I build crazy scripts to autogenerate code.

Writing code is tedious and complex: the perfect job for a computer!

(Reply to this) (Parent)(Thread)


[info]lazrus_armagedn
2009-01-12 11:41 am UTC (link)
Then you clearly haven't been

a) programming for long enough

or

b) doing it properly

Who needs to generate code (automatically or otherwise)?

All my programs consist of one line and a single object class

I simply create instances of the object class and add in the appropriate lines of code to the right properties from my library of code solutions

Each object reacts when called, by calling the main, single-line, program with a parameter consisting of it's own name and a list of relevant properties

The main program then recursively strings together the code lines from those properties and gets on the job by evaluating the result - Possibly calling another object and repeating the process ... or possibly not, depending on whether the particular object is the last in the chain or not

I don't need to generate code (automatically or otherwise) ... I simply grab it from my library of ready-made solutions - Creating a solution consists of simply populating it with the objects appropriately named

(Reply to this) (Parent)(Thread)


[info]t3knomanser
2009-01-12 12:39 pm UTC (link)
You forgot:
c) Work in a large corporate environment with idiotic policies about code and architecture.

The single-object thing doesn't really work for building distributed systems either.

For example, I want to talk to a web service. So, I point my IDE at it, and let it do the work of generating the proxy class for the web service. There's no way I could do this with my personal code library and keep it strongly typed. Not that everything needs to be strongly typed (I'm kinda opposed to strong typing), but when you're working in a big company with a legion of offshore contractors: you need strong typing. They're going to screw up their data type casts anyway, but if it's a strongly typed language, at least you'll know about it!

(Reply to this) (Parent)(Thread)


[info]lazrus_armagedn
2009-01-13 02:56 am UTC (link)
Good point, well made

Yes, that was always a problem when I was doing intranet stuff

But then ... much like I did with OOP in the '80s ... I invented SOA for myself, long before it was a buzzword ... So I still only had a minimal amount of coding to do in addition to my standard libraries - Just write some code to create an ADO and let the program get on with it ... (and, of course, the code for creating an ADO was one of my standard library codes, so it just needed some in situ modification)

But, yes, it's still a good point, well made - I shan't argue any further :)

(Reply to this) (Parent)


[info]jojomojo
2009-01-11 11:29 pm UTC (link)
Well, if you will use Miguelware...;)

(Reply to this) (Thread)


[info]diffrentcolours
2009-01-11 11:33 pm UTC (link)
I'm open to suggestions (preferably ones packaged in Lenny); I'd also like to find out about using Qt from C#.NET at some point, since there's no way I'm using GTK as a GUI toolkit for anything I want to show to other people.

(Reply to this) (Parent)(Thread)


[info]nunfetishist
2009-01-12 12:35 am UTC (link)
Err, use vi?

(Reply to this) (Parent)(Thread)


[info]diffrentcolours
2009-01-12 12:40 am UTC (link)
I do all my coding in vi at the moment; I'm trying to break the habit and experiment with other ways of developing. The idea of having the GUI designer tied in to the code editor is appealing.

I was also hoping that using an IDE could save me having to work out how to turn some C#.NET code into an actual application, as well as stuff like Makefiles.

(Reply to this) (Parent)


[info]t3knomanser
2009-01-12 02:20 am UTC (link)
It's a philosophical thing, at least if Monodevelop is using the same terminology all the way through that VS.NET does.

In VS.NET, a project is one assembly, and that assembly may be an application, but it may also be a web service, a class library, etc.

A Solution is a collection of projects. You may, for example, want to build output that involves a client-side front end that communicates to set of federated webservices each of which uses a common interface defined in a shared class library.

It's an enterprise programming metaphor. If you don't intend to do enterprise programming (which I highly recommend), don't use Mono, .NET or Java. They suck for pretty much any task that doesn't involve shared business components on a server.

(Reply to this) (Thread)


[info]diffrentcolours
2009-01-12 02:55 am UTC (link)
I'm mostly looking into C#.NET as a new language to learn, with the intent of writing apps which are easy to deploy on GNU/Linux and Windows.

I wasn't aware that solution had a defined meaning in enterprise programming - in fact, I'd managed to avoid hearing the phrase enterprise programming before now. It's typically used by people or organisations trying to make themselves more important - domestic waste solutions providers taking out the trash, for example.

(Reply to this) (Parent)(Thread)


[info]t3knomanser
2009-01-12 03:01 am UTC (link)
My non-standard definition for "enterprise programming" is developing applications with distributed components for business applications. Like my main app, an order processing system with a web interface, a client side interface and a web service interface to the same database back-end.

It's boring, tedious, easy and pays well.

(Reply to this) (Parent)


[info]mr_tom
2009-01-12 08:51 am UTC (link)
I wasn't aware that "solution" had a defined meaning in enterprise programming

It doesn't, but Microsoft have given it a specific meaning to be a bundle of projects. I've certainly not heard anyone outside of .net-land use it.

(Reply to this) (Parent)(Thread)


[info]mjfgates
2009-01-12 06:21 pm UTC (link)
What he said. "Solution" just means "the thing you're working on, and all the crap it depends on, and it's all available right there in the IDE." Very handy when you've got a pile of different executables, and they all use different subsets of a pile of common libraries.


(Reply to this) (Parent)


[info]mjfgates
2009-01-12 06:25 pm UTC (link)
C# 2.0 is Java ... ummmm... 1.2 or so, I think. Aside from a couple of constructs like "protected internal", you could write a regexp to convert from either one to the other. A simple regexp.

C# 3.0 has lambdas, though, which are darned cool, and I think you'd need a real parser to convert those. (They pretty much replace delegates.)

Don't use LinQ, it's pointless and stupid.

(Reply to this) (Thread)


[info]diffrentcolours
2009-01-12 07:59 pm UTC (link)
Mono only supports C# 2.0, I think.

Lambdas just reek of computer science to me, I have managed to avoid them over 13 years of professional programming and have no desire to change this.

(Reply to this) (Parent)(Thread)


[info]mjfgates
2009-01-13 02:35 am UTC (link)
Oh, fine. BE all primitive. See if I care.

obj.EmitLinesOnCondition("{0} {1} {{ get; set; }}", obj => obj.IsAutoProperty);

is pretty fun, though. (Line from a C# code generator I've been writing in C#.)

(Reply to this) (Parent)(Thread)


[info]lazrus_armagedn
2009-01-13 06:23 pm UTC (link)
I came across lambda functions some twenty-odd years ago, when learning LISP

LISP I got my head around very quickly and I haven't been the same since - In fact, alarmingly, one day, in around 1990, I looked at some LISP code and right there and then, actually saw the output of the running program, even though I was actually looking at a piece of paper ... (a VERY strange experience)

I never could get my head around how to make real use of lambdas though

How do I actually implement one in a real program, if I don't know what the code for damn thing is!? - That being the whole raison d'etre of lambdas, to my understanding

(Reply to this) (Parent)(Thread)


[info]mjfgates
2009-01-13 10:16 pm UTC (link)
It might've been easier for me because I came at it from the other way-- I ran into function pointers in C first. Once function pointers seem normal, a lambda's just a function pointer that gets initialized from a code "literal", rather than a named code "variable."

I suppose that it would be convenient not to mention the year I spent going mad by writing test code for the hook functions in Windows, i.e. getting paid to figure out function pointers. That last three months, I really knew what I was doing!

(Reply to this) (Parent)


(23 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…