C-sharp demand on par with Assembler - Apache releases a Java app server (Re: Skills in most demand)

A

Abraham Lincoln

Rob S. Pierre wrote:

I am not sarcastic at all. That's the truth. Mono is a kind of lowest-
common-denominator-software - even much more "LCD" then Java
ever was.

No, it's the first step in building a unified OS/OM.

And a good one at that..but it will have to be improved far beyond the early
micro$oft specifications...
 
T

Tom Shelton

I am not sarcastic at all. That's the truth. Mono is a kind of lowest-
common-denominator-software - even much more "LCD" then Java
ever was.

Not really. See, cross platform is nice. It can be done with .NET - but
it isn't really the primary focus of the platform. Nor is it the primary
focus of Mono. Yes, they are implementing a lot of .NET stuff. This will
make it easier for Windows developers, etc. to port should they choose -
but that is not the primary goal. The main attraction for Miguel to .NET
was not cross platform so much as it was the multiple language support.
This is has been a goal of the Gnome team for quite sometime - and MS
handed the means to that end on a silver platter. The fact that many (not
all) apps can/will be able to run on mono unchanged is just a bonus.
Can you write graphics-software with Mono in a platform-independent
way? Let's take a look.

Microsoft uses DirectX, most MS-developers will use it and that means
that games or other 3D-apps don't run on Linux. Off course you can write
OpenGL but that's probably only a very small part of 3D-development.
MSFT will even integrate DirectX into the NET-Framework.

MS already provides managed binding for DirectX for .NET. And Mono is
providing OpenGL binding (TAO - which also works on windows by the way, in
fact that was where it was originally developed). If a developer wants to
be portable - he'll use TAO. If not, he'll use DirectX. Portablity in C#
is a choice - not a requirement.
Can you write 2D-graphics in a platform-indendent way? Off course not
because System.Drawing is deeply integrated in GDI. There is some
cloning effort afaik but again 2D-software will not be compatible.

Um, yes it will be. They are working on System.Drawing, etc. It is
necessary for System.Windows.Forms.
Most MSFT-developers will write Winforms-applications.
WinForms needs Wine to run on Linux and therefore is not a first-class-
citizen on Linux so-to-say. If Mono is dependent from Wine it makes
Mono look bad in the eyes of the community.

Wine - Wine Is Not an Emulator. Wine is a Linux native reimplementation of
the Win32 API. As such, I would say it is indeed a first class citizen.
The most interesting thing is that apparently the leaders of the Mono-
project want to make Mono the platform for GNOME saying that
compatibility with the Microsoft-implementation is not necessary.
That's confusing for all those MSFT-developers hoping to get their
apps ported to Linux.

It isn't necessary, nor is it confusing. Again, Miguel was more interested
in the ability of .NET to allow multiple languages to work together
seemlessly then cross platform compatability. All you have to do is read
the FAQ. Mono is about providing a great development platform for Linux -
and one that will hopefully attract more ISV to write applications for
Linux. So, it is nice that Mono is attempting to be as compatable as
possible with .NET - but in the end it isn't what it's all about.
I guess on JavaOne Sun will announce that Java will be OSS at
the end of the year.

Possible - but I highly doubt it. Guess will see.
It is inevitable imho that this happens.
If Java 1.5 will have a GNU-compatible licence then Mono will
be literally death.

Maybe - but I doubt it.
 
J

Jeff Relf

Hi Chris,

Re: Java being the slum of the computing world.

You said Java is, " the most in-demand skill ".

That figures, Most of the world lives in slums.

I write C++ programs for myself, that's the best way to go.

If you can afford it, that is. If not, enjoy your slum.
 
J

J. P. Morgan

Jeff said:
Hi Chris,

Re: Java being the slum of the computing world.

You said Java is, " the most in-demand skill ".

That figures, Most of the world lives in slums.

I write C++ programs for myself, that's the best way to go.

If you can afford it, that is. If not, enjoy your slum.

I'm in my slum right now. Kent East Hill. Across the street a kid drew
a hopscotch board in a parking space in multicolored chalk. At first I
thought it was sweet. Then later I wanted to punch the walls because
a kid has to play on the ****ING PARKING LOT instead of a park.

If I subtract my alimony, child support, creditor debt left over from my
2000 layoff and so on from my salary, and divide by the number of hours
I'm forced to work, and the number tasks I have to do ( because of under
staffing )... I'm just another low paid off-shore c# dev...Pass the
samosays...
 
P

Pandora Xero

Jeff Relf said:
It's a piece of cake. And it pays my rent.

It might now... but wait 5 years. all your experience gained with
windows and micro$oft will then be for naught.
From what I've been told so far,
Java and C# either can't do that,
or don't do it as well.

C# is another crappy M$ implementation of java. they can never get it
right. as far as ACTUAL java, maybe you're just using it wrong. use
Linux for a few years, then maybe you'll know how to write code
properly.
Linux doesn't support ( or even know about )
my Microsoft Trackball Explorer.
A USB device with 5 buttons and a wheel.

FUD... and i doubt you've ever used Linux. if you're SUCH a good
programmer and think you know everything, then make your own support
modules for your microsoft trackball
So, obviously, Java doesn't know about it either.

(see above)
Linux and Java don't support Excel automation either.

Java is a PROGRAMMING LANGUAGE. why the hell would it have
program-specific support? Plus, Linux doesn't support Excel Automation
BY DEFAULT, Unlike windoze, linux can be changed if you're smart
enough. but then, you're not smart cuz you're a wintroll.
Each OS has many quirks,
such as how mouse messages are handled by various
components, and how the cursor is drawn.

Java is not an OS, dumbass. and a cursor is a cursor regardless
How could I write a Good program for a Mac OS X G5,
which has dual CPU's, each with it's own memory,
and a 30 inch LCD, without actually owning such a beast ?

Simple solution... SOURCE CODE
And those are just a few examples.
Easy cross-platform development using Java or C#
is a nice fantasy... but nothing more.

well of course C# doesnt go cross-platform, thats because its
MICRO$OFT. java? not cross-platform? hmm... thats odd... how come i
can play Collapse, or Runescape or...?
And just writing Hello World doesn't cut it either.
I'm talking about writing the code that I want,
and having it run the way I want,
without Java's roadblocks or convulsions.

if you're talking about anything, you're talking out your ass
Java is the slum of the computing world.

....just another ill-thought-out, ill-written, and incomprehensible
post from a wintroll
 
M

Mark Thornton

Jeff said:
Hi The Ghost In The Machine,

" what is an example of good virtualization ? "

We've talked about this before.

Windows allows me to write to any raster device
using essentially the same code.

Works the same regardless of the printer or the screen.
It's a piece of cake. And it pays my rent.

From what I've been told so far,
Java and C# either can't do that,
or don't do it as well.

Not only does it work well (in Java) it also supports some features
(e.g. anti-aliasing) which may not be available on the OS. As for
Windows, how about drawing wide dashed lines? Oh dear, the
virtualization fails here --- this feature is not available on Windows
9x. On the other hand you could run a Java app on your Windows 98
machine and it WILL draw a wide dashed line (and much more besides).

Linux doesn't support ( or even know about )
my Microsoft Trackball Explorer.
A USB device with 5 buttons and a wheel.

So, obviously, Java doesn't know about it either.

How does that follow? Use the JInput API and your Trackball Explorer
should be available at least when running on an OS that recognizes it.
Linux and Java don't support Excel automation either.

Excel doesn't run on Linux, obviously that is Excel's fault! :)
Where Excel does run, people are managing to interact with it from Java.
Each OS has many quirks,
such as how mouse messages are handled by various
components, and how the cursor is drawn.

How could I write a Good program for a Mac OS X G5,
which has dual CPU's, each with it's own memory,
and a 30 inch LCD, without actually owning such a beast ?

Cross platform GUI development is undoubtedly tricky, but Java is the
best approach to it I've used. As for the dual CPU bit, that works
really well from Java and it is perfectly possible to develop a
multithreaded application intended for a multi-cpu machine on say
Windows and expect it to run perfectly well on Linux or OS X. In my
opinion it is essential to use a dual CPU machine to develop such
applications, simply because multithreading is tricky. The multi-OS
support (non GUI) is relatively trivial if you use Java.
And just writing Hello World doesn't cut it either.
I'm talking about writing the code that I want,
and having it run the way I want,
without Java's roadblocks or convulsions.
And how long is it since you wrote any serious Java?
Java isn't perfect and it isn't the tool of choice for all applications,
but it is now very good across a wide range of tasks.

Mark Thornton
 
J

Jeff Relf

Hi Pandora Xero,

Even though it was more than obvious to everyone,
you felt compelled to make this confession:

" If I'm talking about anything,
I'm talking out my ass. "

Stick in there kid, You'll be alright.

P.S.
Can I help you get an ISP ?
Google is the mark of a troll.
 
J

Jeff Relf

Hi Mark Thornton,

Re: Windows' GDI for easily writing to any raster device
using essentially the same code,
regardless of the printer or the screen.

You asserted,
" Not only does it work well ( in Java )
it also supports some features ( e.g. anti-aliasing )
which may not be available on the OS. "

Even if that were true ( and I highly doubt it ),
Java still couldn't do it with out the OS.

Java Overlays an OS, it doesn't replace it.

Java is a third class language.
No one would use it if they didn't have other options.
 
S

Satan's Evil Twin

Java is a third class language.
No one would use it if they didn't have other options.

IOW, one would only use java if one had the option of using other languages?
Gee, that explains it!!
 
M

Mark Thornton

Jeff said:
Hi Mark Thornton,

Re: Windows' GDI for easily writing to any raster device
using essentially the same code,
regardless of the printer or the screen.

You asserted,
" Not only does it work well ( in Java )
it also supports some features ( e.g. anti-aliasing )
which may not be available on the OS. "

Even if that were true ( and I highly doubt it ),
Java still couldn't do it with out the OS.

Java Overlays an OS, it doesn't replace it.

Java is a third class language.
No one would use it if they didn't have other options.

What may I ask are your qualifications for making these unsubstantiated
assertions? You do not appear to have any experience with the language
at all. I have been using Java for over seven years and know its
strengths and weaknesses very well.

Mark Thornton
 
H

Hans Eekels

I suggest we stop this threat:
* It's to long (most replay's are out of my window);
* It has (now) nothing to do with VB;
* It started serious, but it's ending (like mor long discussions) in call
someone names.

HE
 
J

Jeff Relf

Hi Mark Thornton,

You asserted,
" I have been using Java for over seven years
and know its strengths and weaknesses very well. "

The following C++ routines are used to print to any printer
( including Europe's A4 paper )
as well as to any sized screen.
( Only the HDC and a few variables change )

Can you show Java examples ?

#define Str sprintf

#define SetPtr SelectObject

typedef unsigned long ulong ;
typedef char * Line ;

#define LOOP while ( 1 )

#define Loop( _LLL ) int J = -1, LLL = _LLL ; \
while ( ++ J < LLL )

int rv ; // rv is a very temporary holding place.

int Rnd ( float F ) { return ( int ) floor ( F + .5 ); }

// The following two lines are in some routines somewhere ...
// CharH, a float, is scaled to fit a screen.
// Land is for landscape.
// CharH = ( Way == Land ? 9 : 6.5 ) * Scale ;
// or a sheet of paper.
// CharH = Way == Land ? CharH_L : CharH_P ;

// CF() creates a font for a printer or a screen.
// The aspect Ratio _Must_Be_ determined first.
// Tries for Bold.
// F, for font, is a bound reference,
// one of the few C++ features that I use.
CF ( HDC DC, HFONT & F, float Width ) {
F = CreateFont( - Rnd ( 81 * Width / 49 ),
0,0,0, 700,0,0,0,0,0,0,0, FIXED_PITCH, 0 );
int Tmp =! DC ; if ( Tmp ) DC = GetDC ( 0 );
HFONT OF = ( HFONT ) SetPtr ( DC, F ); SIZE Sz;
GetTextExtentPoint ( DC,"XXXXX", 5, & Sz );
Sz.cx /= 5 ; SetPtr ( DC, OF );
if( Sz.cx > Width ) { DeleteObject( F );
F = CreateFont( rv= -Sz.cy * Width / Sz.cx,
0,0,0, 700,0,0,0,0,0,0,0, FIXED_PITCH, 0);
SetPtr( DC, F);
GetTextExtentPoint( DC,"XXXXX", 5, & Sz); Sz.cx /= 5;
SetPtr( DC, OF );
if ( Sz.cx > Width) { DeleteObject( F );
F = CreateFont( rv * ( int ) Width / Sz.cx,
0,0,0, 0,0,0,0,0,0,0,
DRAFT_QUALITY, FIXED_PITCH, 0 ); } }
if ( Tmp ) ReleaseDC ( 0, DC ); }

// Gets details about the selected printer.
GetPrinter ( ulong F, int Passive ) {
HDC Old_DC = PnDC; PrnRec.Flags = F | PD_RETURNDC ;
if( ! PrintDlg ( & PrnRec ) ) {
if ( Passive ) return; int Err = CommDlgExtendedError();
if ( Err ) {
Str( Mess,"Printer Setup Dialog Error %d",
Err ); Bow( Mess ); } if ( ! Err ) return ; }
if ( ! ( PnDC = PrnRec.hDC ) )
if ( Passive ) return ; else Bow("No Printer Selected");
{ DEVNAMES * Printers =
( DEVNAMES * ) GlobalLock ( PrnRec.hDevNames );
Str ( PrnName,"%s",
( Line ) Printers + Printers->wDeviceOffset );
Str ( PrnPort,
( Line ) Printers + Printers->wOutputOffset );
SetDlgItemText ( Win, 1006, PrnName );
SetDlgItemText ( Win, 1020, PrnPort );
GlobalUnlock ( PrnRec.hDevNames ); }
if ( PrnFon ) DeleteObject ( PrnFon );
Line_Able = GetDeviceCaps ( PnDC, LINECAPS );
if ( Old_DC && Old_DC != PnDC ) DeleteDC( Old_DC );
SetBkMode( PnDC, TRANSPARENT );
SetMapMode( PnDC, MM_ISOTROPIC );
{ DEVMODE * Printer =
( DEVMODE * ) GlobalLock( PrnRec.hDevMode);
_CharH = GetDeviceCaps(PnDC,LOGPIXELSY) * 9.4 / 72 *
( Printer->dmPaperSize == DMPAPER_A4 ?
21 / 2.54 / 8.5 : 1 );
GlobalUnlock ( PrnRec.hDevMode ); }
// CF Creates a font.
CF ( PnDC, PrnFon, PrnCharW = _CharH * WHR );
CF ( PnDC, BigPrnFon, BigPrnCharW =
_CharH * WHR * BigSc );
LM = 7 * PrnCharW ; // Sets various margins.
MarginP = CharH_P = _CharH * 1.032 ;
MarginL = ( CharH_L = _CharH * 1.06 ) * 2 ; }

// _Say() and Say() work the same,
// no matter if the HDC is a printer or a screen.
_Say ( float X, float Y, char * Bu, int L ) {
if( L <= 0) return;
int _Y = Y- CharH * .3, YY = Rnd( Y ), LL;
char * P = Bu ;
LOOP {
Bu = P ;
while ( L && ( uchar ) * P < 128 ) { L--; P++; }
LL = P- Bu ;
if ( LL > 0) {
X -= ChW;
Loop ( LL ) TextOut ( PnDC,
Rnd ( X += ChW ), YY, Bu + J, 1 ); }
if ( L ) { TextOut ( PnDC, Rnd ( X += ChW ), _Y, P, 1 );
X += ChW ; L -- ; P ++ ; } if( ! L ) break; } }

#define FuSay \
if( P > Bu) _Say ( LM + ( Bu- Old ) * ChW, Y, Bu,P- Bu); \
Bu = P + 1 ;

#define FuFuSay \
if ( P > Bu) { SetBkMode( PnDC, OPAQUE ); \
float W = ChW ; ChW = BigChW ; \
_Say( LM + ( Bu - Old ) * W, \
Y - CharH * BigSc, Bu, P - Bu ); ChW = W ; \
SetBkMode( PnDC, TRANSPARENT ); } Bu = P + 1 ;

Say ( ) { Resp ( ); // Resp() handles mouse events
char C, * P = Old, * Bu = Old ;
float Y = Row * CharH + Margin ;
if ( Line_Able ) {
while( P < Cur) {
if ( * P == '_' && P [ 1 ] !='_') {
FuSay while ( ++ P <= Cur && ( uchar ) * P > 32 );
rv = FnC ( _Re ); SetPtr ( PnDC, OF );
OF = ( HFONT ) SetPtr ( PnDC, BigPrnFon );
FuFuSay SetPtr ( PnDC, OF );
OF = ( HFONT ) SetPtr ( PnDC, PrnFon );
FnC ( rv ); }
else if ( * P == '|' ) { FuSay
MoveToEx ( PnDC,
rv = Rnd ( LM + ( P - Old ) * ChW + ChW / 2),
Rnd ( Y ), 0 );
LineTo ( PnDC, rv, Rnd ( Y + CharH ) ); }
else if ( ( * P == '-' || * P == '=' )
&& P [ 1 ] == ( C = * P ) ) { FuSay
OP = C == '-' ?
0 : ( HPEN ) SetPtr( PnDC, WidePen );
MoveToEx ( PnDC,
Rnd ( LM + ( P- Old ) * ChW ),
rv = Rnd ( Y + CharH / 2 ), 0 );
while ( ++ P <= Cur && * P == C ); Bu = P ;
LineTo ( PnDC,
Rnd ( LM + ( P- Old ) * ChW ), rv );
if ( OP ) SetPtr ( PnDC, OP ); continue; }
P++; } } FuSay Old = Cur + 1; }
 
J

Jeff Relf

Hi J. P. Morgan,

Re: How you're always talking out of your ass.

You observed,
" Man, And people think You have bad breath. "

Please John, Step back a few feet when you say that.
 
J

J. P. Morgan

Jeff said:
Please John, Step back a few feet when you say that.

using System;

public class Calculator
{
public static decimal CalculateInterest(out decimal balance)
{
decimal interest = (decimal)45.11;
balance = (decimal) 4566.54;
balance += interest;
return(balance);
}

class BatchRun
{
static void Main()
{
decimal balance;

Console.WriteLine("Balance + Interest = " +
Calculator.CalculateInterest(out balance));
}
}

PS -- Have you figured out what's unique about this code?

Right -- the input parameter is unintialized...can you do that without
doing any thing special ?
 
J

Jeff Relf

Hi J. P. Morgan,

Sure, The & symbol in the code below
makes Balance a reference that
is bound to Exported_Balance.

That's one of the few C++ features that I use.
( Declaring variables anywhere is another one )

CalculateInterest ( double & Balance ) {
double Interest = 45.11 ;
Balance = 4566.54 ;
Balance += Interest ; }

main() {
// Exported_Balance is uninitialized.
double Exported_Balance ;

// I moved CalculateInterest()
// to here only to illustrate the binding.
CalculateInterest( Exported_Balance );

// This prints 4566.54 + 45.11,
// using a 2 decimal mantissa.
WriteLine(
" Balance + Interest = %3.2f ", Exported_Balance ); }
 
J

J. P. Morgan

Jeff said:
Hi J. P. Morgan,

Sure, The & symbol in the code below

Blah, blah, blah

It only means one thing: which all can see.

VB6 one. It was the right language to do visual programming and OO
programming in. c# and vb.net are the same thing: vb6 with multi-level
scoping.

the only reason they call it c# is so that all those glorified vc++
programmers can hold their heads high...and not be called 'vb programmers'
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top