Originally posted by Fukui
NO.
OBJECTIVE-C is much more powerful, even though its older.
C# is Microsofts' cheap copy of Java with all the security removed...anyways, they are similar in someways (mostly cause Java borrows from Objective-C)...
I like to call it D-Flat
Originally posted by Fukui
NO.
OBJECTIVE-C is much more powerful, even though its older.
C# is Microsofts' cheap copy of Java with all the security removed...anyways, they are similar in someways (mostly cause Java borrows from Objective-C)...
I like to call it D-Flat
Heh. .NET is not such a weak attempt
As others have said, they are not the same language.Is Objective-C the same as C#
are these the same and just different names for each other??
Objective-C and C# have two entirely different purposes. Neither are more powerful than each other. They have their own merits.OBJECTIVE-C is much more powerful, even though its older.
C# is Microsofts' cheap copy of Java with all the security removed...anyways, they are similar in someways (mostly cause Java borrows from Objective-C)...
In Java:
1. while (!collection.isEmpty()) {
Object o = collection.get();
collection.next();
...
2. for (int i = 0; i < array.length; i++)...
In C#:
1. foreach (object o in collection)...
2. foreach (int i in array)...
Therefore, the Java version is less type-safe because it allows you to accidentally assign wall to any integer value without the compiler complaining. Plus, when debugging the Java version, you would get the integer value, instead of a human readable one, like in C#, it would return the enumeration values like "North", "East", etc. instead of integers they return.Java:
public class Direction {
public final static int NORTH = 1;
public final static int EAST = 2;
public final static int WEST = 3;
public final static int SOUTH = 4;
}
Usage:
int wall = Direction.NORTH;
C#:
Declaration:
public enum Direction {North=1, East=2, West=4, South=8};
Usage:
Direction direction = Direction.North | Direction.West;
if ((direction & Direction.North) != 0)
So can C#. C# is just a language, not a binary/run time. In fact, you can create and run .NET-compiled binaries on Mac OS X and FreeBSD with ROTOR from Microsoft and on Linux with Mono, the GPL'ed .NET framework for UNIX. In fact, .NET is both language and platform independent. Well, technically, so is Java, but not many people really use Jython, etc. Very specific niche.And Java runs on just about anything, where C# will only run on.. well I think you can figure this out :-D
.NET isn't even owned by Microsoft. The trademark, perhaps, but Microsoft .NET is Microsoft's implementation of EMCA-334 (C#) and ECMA-335 (CLI). Who cares if it isn't in gcc. gcc is perhaps the worst compiler when it comes to usability and user intuitiveness. Plus, it's so damn slow. In fact, you don't need gcc to do .NET, nor do you need Microsoft compilers. You can use Mono on Linux.I didn't say .Nyet I said C#. Perhaps it is good as cocoa, but its no Java replacement. Also, Cocoa is basically an open system (OpenStep Based, so you can use GNUstep on Linux to run some recompiled cocoa apps) while .Nyet is owned by MS...only C# is open, and not yet in GCC (iThink) so I don't really care to try it out.
Better security on what? Please refer to my above comments. What if you make a mistake in C++ (a buffer overrun), the compiler wouldn't complain, and congratulations, you have a security flaw! Besides, you CAN use C# on your Mac.I'm taking C# as a tech elective at college. I really don't like it. C++ was easier to understand, has better security, and I can actually use C++ on my mac.
You would use ROTOR (download page) from Microsoft/Corel.Originally posted by parenthesis
What compilier do you use for C# on the mac? I was always told that you couldn't.
Also, I remember reading somewhere (C|NET news more than likely) that .NET Programming Tools have many security problems.
.NET isn't even owned by Microsoft. The trademark, perhaps, but Microsoft .NET is Microsoft's implementation of EMCA-334 (C#) and ECMA-335 (CLI). Who cares if it isn't in gcc. gcc is perhaps the worst compiler when it comes to usability and user intuitiveness. Plus, it's so damn slow. In fact, you don't need gcc to do .NET, nor do you need Microsoft compilers. You can use Mono on Linux.
Therefore, the Java version is less type-safe because it allows you to accidentally assign wall to any integer value without the compiler complaining. Plus, when debugging the Java version, you would get the integer value, instead of a human readable one, like in C#, it would return the enumeration values like "North", "East", etc. instead of integers they return.
................GCC can be wrapped to a GUI (like Project Builder), and if it is so bad then why is it that all those MS-beating Linux benchmarks (Linux OS) were compiled on GCC, yes GCC might not be as fast as some proprietary junk from Intel (cant compile linux with it...) or codewarrior, but its not that bad....and who want to use ROTOR (hint. YOU MAY NOT WRITE ANY COMMERCIAL APPS WITH IT) and MONO is not done...who in thier right mind actually beleives MS will stick with thier published standards (hint. they didnt if anyone remembers COM and COM+, JAVA etc) I have learned to stay away from MS as much as I can..NET isn't even owned by Microsoft. The trademark, perhaps, but Microsoft .NET is Microsoft's implementation of EMCA-334 (C#) and ECMA-335 (CLI). Who cares if it isn't in gcc. gcc is perhaps the worst compiler when it comes to usability and user intuitiveness. Plus, it's so damn slow. In fact, you don't need gcc to do .NET, nor do you need Microsoft compilers. You can use Mono on Linux.
Moral of this: different languages and programming platforms have different goals. Choose the best one that fits your own goal.
The original author didn't even bother to put "framework." Yes, .NET is a framework, but so is Mono's .NET implementation. Therefore, .NET isn't wholly owned by Microsoft. Just the trademark and it's few classes which are proprietary to Windows (i.e. Windows.Forms) but that isn't stopping Mono from doing a Windows.Forms compatibility layer. It's completely possible.Originally posted by Fukui
Um, dot.net is a framework. Hence the moniker ".NET FRAMEWORK"
It is a very big deal when working on a large project. Why the hell should I give arbitrary numbers to something and have a million others like that, oh, which property should it be? Wasn't 4 = North?Yeeaahhh, so what?
Adding a little more simple logic on the programmers' end can get the same results...
Big deal!
Yes, gcc may be wrapped with an UI, But I haven't seen a *GOOD* IDE for UNIX/Mac OS X (with an exception of CodeWarrior) that clearly competes with Visual Studio .NET. Show me one that is as good or even better than Visual Studio .NET and proves to be more productive for me, I'll switch. It's just more intuitive and efficient, in my opinion. Whatever floats your boat.................GCC can be wrapped to a GUI (like Project Builder), and if it is so bad then why is it that all those MS-beating Linux benchmarks (Linux OS) were compiled on GCC, yes GCC might not be as fast as some proprietary junk from Intel (cant compile linux with it...) or codewarrior, but its not that bad....and who want to use ROTOR (hint. YOU MAY NOT WRITE ANY COMMERCIAL APPS WITH IT) and MONO is not done...who in thier right mind actually beleives MS will stick with thier published standards (hint. they didnt if anyone remembers COM and COM+, JAVA etc) I have learned to stay away from MS as much as I can.
Just the trademark and it's few classes which are proprietary to Windows (i.e. Windows.Forms) but that isn't stopping Mono from doing a Windows.Forms compatibility layer. It's completely possible.
myObject.direction = North;
is much more meaningful than if it were to = 1
Compatibility within .NET framework awesome? Yea....so. Thats like saying the compatibility within the cocoa framework is awesome...whats your point????I would consider COM objects in .NET pretty much a necessary item...Microsoft will stick with .NET and it will be compatible. Compatibility within the .NET Framework is awesome, its versioning control is much better than Java's, IMO. In fact, anything .NET can act as a COM object, so even more backwards compatibility. Hell, you can even use a COM object in .NET.
Yes, it is. And 15 years behind Steve and Avi LOL....NET is the future of Microsoft.
Wrong. Not irrelevant at all. If the Mono guys can do Windows Forms compatibibilty pretty damn good, applications written for Windows Forms in .NET should run perfectly. It's like developing Java with Swing, a developer may not care that it works on Mac OS X with no change, but the end user might care.Originally posted by Fukui
This is completely irrelevant as long as MS doesn't release anything (thier key apps) for linux. And just because .NET features are being implemented in MONO also doesn't mean that developers would even care to release thier apps for Linux/Unix...notice the lack of apps that are compiled with the WINE librarys, or the almost non-existent library of cocoa apps on GNU-Step/Linux...
Let me ask you this: why the hell should we get around it? Why can't we simply have it already implemented. Saves time, for Christ's sake!Yes, it is more meaningful, but any programmer worth 2cent can get around that pretty easily.
Yes, compatibility within the .NET framework is superior to Java:Compatibility within .NET framework awesome? Yea....so. Thats like saying the compatibility within the cocoa framework is awesome...whats your point????I would consider COM objects in .NET pretty much a necessary item...
Much better. Plus it's irrelevant to Cocoa/Objective-C. Objective-C compiles to pure binary, not to an intermediate language.13. Versioning
Solving versioning issues has been a major consideration in the .NET framework. Most of these considerations apply to assemblies. There are some quite impressive capabilities such as running multiple versions of the same assembly in the same process.
The C# language prevents software failures when new versions of code (most notably the .NET libraries) are made. The C# Language Reference explains this in detail, but I've summarized the problem with a highly condensed example:
In Java, supposing we deploy a class called D which derives a class distributed with the VM, called B. Class D has a method called foo which B does not have at the time of distribution. Later, an update is made to class B, which now includes a foo method, and the new VM is installed on the computer running software which uses class D. The software using class D may malfunction because the new implementation of class B will make a virtual call to class D, performing an action with an implementation totally unintended by class B. In C#, class D's foo would have been declared without the override modifier (which expresses the programmer's intention), so the runtime knows to make Class D's foo hide Class B's foo, rather than override it.
An interesting quote from the C# reference manual was: "C# addresses this versioning problem by requiring developers to clearly state their intent". Although the use of the word override is one way to state intention, it could also be automatically generated by the compiler by checking to see if a method performs (rather than declares) an override at the time of compilation. This means you can still have Java-like languages (which don't use virtual and override keywords) and still cope with versioning correctly.
from Ben Albahari's "A Comparative Overview of C#"
Right, 15 years behind when Apple doesn't have this kind of technology. WebObjects is badly outdated as it is the only thing that Apple offers that is similar to the .NET Framework, and it's only a fraction of what the .NET Framework can do.Yes, it is. And 15 years behind Steve and Avi LOL...
-SHOULD- notice that word...you think any company is going to put thier chances on SHOULD WORK??? Well, I guess shooting in the dark is par for the course when dealling with MS "standards..." forms are just the begining...ask yourself this: if MS was so interested promoting real compatibility why they would keep thier jewels to themselves? Gimeabreak.applications written for Windows Forms in .NET should run perfectly
Just like the internet today...thanks to MS. (They don't care if it doesn't work on Mac OS X, we have to shoot into the dark to find ways of compatibilty with Windows Specific JAVA and other IE only garbage)It's like developing Java with Swing, a developer may not care that it works on Mac OS X with no change, but the end user might care
Let me ask you this: why the hell should we get around it? Why can't we simply have it already implemented. Saves time, for Christ's sake!
WebObjects is just a server side application server, it wansn't meant to cover the area .NET is. NeXT had OO technology and framworks like .NET way back in 88, tho it wasn't meant to compile to an intermediate language, you can use Java-in-cocoa now. And OpenStep was around along time ago...Right, 15 years behind when Apple doesn't have this kind of technology. WebObjects is badly outdated as it is the only thing that Apple offers that is similar to the .NET Framework, and it's only a fraction of what the .NET Framework can do.
Yes, should. Any company could take chances by making sure it works and providing support. In fact, you don't have to use Windows Forms to use GUI on Mono. There's GTK# and QT#.Originally posted by Fukui
-SHOULD- notice that word...you think any company is going to put thier chances on SHOULD WORK??? Well, I guess shooting in the dark is par for the course when dealling with MS "standards..." forms are just the begining...ask yourself this: if MS was so interested promoting real compatibility why they would keep thier jewels to themselves? Gimeabreak.
You're twisting my words there. I said the developer itself does not care if it works, not the opposite. If product X was designed for Windows, but works perfectly on Linux, both developers and users benefit. Developers get more money, users can use the programs they need.Just like the internet today...thanks to MS. (They don't care if it doesn't work on Mac OS X, we have to shoot into the dark to find ways of compatibilty with Windows Specific JAVA and other IE only garbage)
Have you ever worked on a large scale software project? A minute for one occurence, perhaps, but when there are several millions of lines of code. Multiply that by a large n. Hours, weeks can be saved. Which results in a lower Time-to-Market span.Like what, a minute?
Yes, .NET can do server side stuff. Ever heard of ASP.NET? Far more powerful than WebObjects.WebObjects is just a server side application server, it wansn't meant to cover the area .NET is. NeXT had OO technology and framworks like .NET way back in 88, tho it wasn't meant to compile to an intermediate language, you can use Java-in-cocoa now. And OpenStep was around along time ago...
In case if you haven't listened to the news, Microsoft is forced to include Sun's Java Runtime. This is a good thing, IMO. Only appeals will tell if the law will still enforce the Sun distribution requirement.Secondly, you can bet that once MS drops Java and includes .NET only, websites will use .NET and "the rest of us" will be screwed. MS is very smart about these kinds of things, they only give enough information away to get you in, and once you fall in line, they pull the rug out from under you and make another "extended" implementation that locks you in to to thier system. They did it with dos, office, java, IE, COM, and if history is any indication, .NET will be next. I am tired of it. Why should we sell ourselves to MS's reinvention of the wheel when we already have the same thing, and its open and supported by multiple vendors...
But there is no underlying motivation to do so. Until DELL, or HP start selling millions of linux on the desktop, no one will really care. I've seen this kind of optimism before...logic does not play out it the real world.Yes, should. Any company could take chances by making sure it works and providing support. In fact, you don't have to use Windows Forms to use GUI on Mono. There's GTK# and QT#.
You're twisting my words there. I said the developer itself does not care if it works, not the opposite. If product X was designed for Windows, but works perfectly on Linux, both developers and users benefit. Developers get more money, users can use the programs they need.
Yes, and web-services never existed before MS came along...we were just talking about webobjects.Yes, thanks to Microsoft we have SOAP/Web Services, DHTML, CSS, etc
Yes, I have, but at least I can run WebObjects apps on any certified J2EE server... am not locked into IIS on Windows.Yes, .NET can do server side stuff. Ever heard of ASP.NET? Far more powerful than WebObjects.
Perhaps....Have you ever worked on a large scale software project? A minute for one occurrence, perhaps, but when there are several millions of lines of code. Multiply that by a large n. Hours, weeks can be saved. Which results in a lower Time-to-Market span.
Yes, but no one had implemented it as well as NeXT back in the 80's until recently with .NET...And guess what, OO has been around since the 1960s, so it wasn't innovative for objective-C. It's like blaming Sun for copying objective-C because OO was a good programming practice.
In case if you haven't listened to the news, Microsoft is forced to include Sun's Java Runtime. This is a good thing, IMO. Only appeals will tell if the law will still enforce the Sun distribution requirement.
And yes, you do get multiple vendors with .NET. Mono, dot GNU, ROTOR, Microsoft .NET, etc.
class Direction
{
Static Direction NORTH = new Direction('N');
Static Direction SOUTH= new Direction('S');
Static Direction EAST = new Direction('E');
Static Direction WEST = new Direction('W');
private char type;
private Direction(char type)
{
this.type = type;
}
}
. . .
if( theDirection = Direction.NORTH )
{
. . .
public enum Foo {Alpha=new AlphaClass(),
Beta=new BetaClass(), Gamma=GammaClass()};
If there is no underlying motivation to do so, then why would all those open source .NET Framework projects be worked on at a very vigorous rate.Originally posted by Fukui
But there is no underlying motivation to do so. Until DELL, or HP start selling millions of linux on the desktop, no one will really care. I've seen this kind of optimism before...logic does not play out it the real world.
Exactly, it's all about support. If product X isn't supported in platform Y, but works perfectly. Neither sides would care.Not if its unsupported by the company writing the software. If you call in for support and they ask you questions and your answers are different with what they expect and they ask you "are you running on Windows?" and you answer "no" they will say "I am sorry we don't support productX on platformY, you use it on your own risk, if you want support use it on windows."
About the guaranteeing: not even the GNU GPL provides guarantee that software X will work or not. So it's irrelevant. However, as you have pointed out, it IS relevant in the business world. But remember, someone could be Red Hat for Mono, which Ximian is exactly for. Ximian is most likely providing support for Linux (thus guaranteeing that a designed-for-Linux .NET program will work 100% as it should on Linux).The point is: if the behavior of their .NET applications are guaranteed by MS in Windows, but not in any other implementation, don't expect corporation to support linux/OS X anywhere in their workplace like they do windows, where the real money for software lies...in large corporations where you can audit licenses etc. The only chance OS X may have is if MS/MBU releases a fully supported "MS-Backed" .NET implementation, which is what I heard somewhere they were looking into.
Very true.It is over simplistic to think "If I build it they will come." It is more like "If I have 90 percent market and full technical support they will come."
Au contraire! Web Services/SOAP was a standard even before Microsoft .NET was released, there have been several server-end applications/servers that supported Web Services. Microsoft just took time to make sure they don't screw up majorly this time.Yes, and web-services never existed before MS came along...we were just talking about webobjects.
Bzzt. Wrong again, sorry bud. You're not locked into IIS, well, actually for now, sure, that I know of. However, I remember Microsoft claiming they are going to release a full release of ASP.NET for Apache/UNIX support a while ago. Plus, it's entirely possible to run ASP.NET on Mono/ASP.NET plugin for Apache. Of course, it's extremely buggy, but hey, it's coming. [btw, I'll look for the URL about Microsoft and Apache/UNIX and post it later, I'm a bit tight on time right now.]Yes, I have, but at least I can run WebObjects apps on any certified J2EE server... am not locked into IIS on Windows.
Again, it's like saying what took Sun so long to get something similar to objective-C. I'm confident that Microsoft wanted Java to prove itself reliable before they do one, especially so they can see the flaws of Java and prevent these flaws from occuring in .NET. objective-C may be the first of it's "genre," but is it the most popular? It probably has many flaws (example developer's opinions) many find annoying so they prefer Java/C# to objective-C. Microsoft likes to see something proven first and find its flaws and make a better product to make the world more competitive. Of course they have that damned monopoly.Yes, but no one had implemented it as well as NeXT back in the 80's until recently with .NET...
I am not blaming them, I just wonder what took MS so long.
Useless for what? So are you saying the entire open source community is useless because they're way behind commercial UNIX but copying them and trying to catch up? What's the difference? Wasn't open source mainly for research/students/etc. with gaining corporate recognition.ROTOR is useless. dot GNU is unfinished, MONO is unfinished, only MS is at the plate. Make no mistake .NET will be making changes and taking names later, while everyone else tries to keep up with them. Just look how long it took apple to release 1.4.1 because Sun doesn't support OS X! They will always be lagging behind MS, and that is unacceptable for businesses, especially as they get larger (they are more conservative).
Whew, someone who finally agrees with me about McNealy.And I have little faith in McNealy, he's just a litigation happy CEO who got screwed by MS and thinks 1bn dollars really gonna hurt MS... Its not.
Very good points! 100% concur.What MS says, vendors do. Its that simple. Its reality. At least steve is able to push (Apple/ex-NeXT) hard enough (probably by screaming at them..) that a tiny company (compared to MS/SUN/IBM) is able to so well against all odds...dropping the law-suit apple had with MS was his best move next to the iMac.
Thanks for the hack. I'll have to take that in mind the next time I consider an Enum in Java. Yes, it's not as simple as C#. I think Microsoft emphasized that C# is really all about, as Ralph Waldo Emerson would say: simplicity, simplicity, and simplicity!Originally posted by eric_n_dfw
FWIW: How I do enums in Java:
This gives you complete control over the enumeration and keeps the next code geek from gloming an int or char in the place of the enum.I believe I got this from Effective Java Programming Language Guide by Joshua Bloch.Code:class Direction { Static Direction NORTH = new Direction('N'); Static Direction SOUTH= new Direction('S'); Static Direction EAST = new Direction('E'); Static Direction WEST = new Direction('W'); private char type; private Direction(char type) { this.type = type; } } . . . if( theDirection = Direction.NORTH ) { . . .
Given, this is not as simple as what you've described for C#, but I've always found that on large, enterprise OO based applications, coding time is irrelivant. Valuable requirement gathering and design are where most of the time is spent. Once this class is implemented, you just use it.
Now that I think about that, I don't think so. I believe Alpha, Beta, and Gamma all have TO be integer. And of course, classes can't be integer, am I wrong?Just curious, can C#'s enums be non base types? For example, is this possible (forgive the syntax, I don't know anything about C#):
Code:public enum Foo {Alpha=new AlphaClass(), Beta=new BetaClass(), Gamma=GammaClass()};
Because they know from the past that you can't fight Microsoft and win, you can only assimilate and play nice, otherwise you just become another bug under their shoe. Its called motivation by necessity: they have no choice.If there is no underlying motivation to do so, then why would all those open source .NET Framework projects be worked on at a very vigorous rate.
Thats why there are companies like Redhat, Ximian, IBM, and Apple around to provide guarantees of support for their Linux/Unix implementations and a minimum level of reliability that can be expected from these companies. I agree.About the guaranteeing: not even the GNU GPL provides guarantee that software X will work or not. So it's irrelevant. However, as you have pointed out, it IS relevant in the business world. But remember, someone could be Red Hat for Mono, which Ximian is exactly for. Ximian is most likely providing support for Linux (thus guaranteeing that a designed-for-Linux .NET program will work 100% as it should on Linux).
Did you know that even Red Hat will demand its rights to audit the licenses for its enterprise suite of Linux operating systems. Wouldn't we agree that this is, uh, weird for a Linux company?
Au contraire! Web Services/SOAP was a standard even before Microsoft .NET was released, there have been several server-end applications/servers that supported Web Services. Microsoft just took time to make sure they don't screw up majority this time.
Well, according to you post I am right. And you don't actually believe that they would support apache as well as IIS...do you? They are not stupid enough to give a serious competitor a leverage against them, just bones to "hungry dogs" as far as MS is concerned.Bzzt. Wrong again, sorry bud. You're not locked into IIS, well, actually for now, sure, that I know of. However, I remember Microsoft claiming they are going to release a full release of ASP.NET for Apache/UNIX support a while ago. Plus, it's entirely possible to run ASP.NET on Mono/ASP.NET plugin for Apache. Of course, it's extremely buggy, but hey, it's coming. [btw, I'll look for the URL about Microsoft and Apache/UNIX and post it later, I'm a bit tight on time right now.]
Again, it's like saying what took Sun so long to get something similar to objective-C. I'm confident that Microsoft wanted Java to prove itself reliable before they do one, especially so they can see the flaws of Java and prevent these flaws from occurring in .NET. objective-C may be the first of it's "genre," but is it the most popular? It probably has many flaws (example developer's opinions) many find annoying so they prefer Java/C# to objective-C. Microsoft likes to see something proven first and find its flaws and make a better product to make the world more competitive.
I am sure its been around since at least java was announced by SUN, they got Java in windows because as a monopoly they were the only ones big enough who could make it backfire on McNealy, and pave the way for a "their way."I know they announced it as NGWS in 2000.
No, just ROTOR, it doesn't allow you to run commercial apps, its just a toy. UNIX is gaining corporate recognition because it allows them to compete and not have to reinvent the wheel every time they want to implement a custom solution, and they don't have to bend over every time MS comes over to shove another licensing 6 up their arse.Useless for what? So are you saying the entire open source community is useless because they're way behind commercial UNIX but copying them and trying to catch up? What's the difference? Wasn't open source mainly for research/students/etc. with gaining corporate recognition.
By the way, very good point on Sun! Yes, very unacceptable. But remember, companies exist to earn money. Sun has to, even when Java is literally "free." Sun is known to break things in Java to force people to upgrade, just like Microsoft. All about the money, and unfortunately, open source won't change that, IMO.
They are like apple in the early-mid 90's, they need a brain transplant.Whew, someone who finally agrees with me about McNealy. I've said it myself, and I will say it again, Sun is shooting themselves in the foot.
I think, if you look at languages and their complexity, you always find that simplicity comes with the trade-off of flexibility.Originally posted by MacCoaster
Thanks for the hack. I'll have to take that in mind the next time I consider an Enum in Java. Yes, it's not as simple as C#. I think Microsoft emphasized that C# is really all about, as Ralph Waldo Emerson would say: simplicity, simplicity, and simplicity!
No, they can't. The only reason I've had to use that kind of aproach was when I had a factory class who could return any one (or an array of) of bunch of different object instances. All of which extended a common base class. The "type" class's "enumerations" all were like my direction example exept that they passed a String containing the package.class name of the objects which each enumeration represented into the private constructor. The type class, istelf contained a private Class instance which the constructor set using a Class.forName( passedInClassName). (Exception handling was nessesary to handle missing classes at run time)
Now that I think about that, I don't think so. I believe Alpha, Beta, and Gamma all have TO be integer. And of course, classes can't be integer, am I wrong?