Being stuck!
I was stuck in a big hole today!
I spent 4 hours trying to figure out one single problem!
My hair turned white from the anger within me and mom asked me when I got home, “How the hell did it turn white in 2 days?”
I kept trying 2132131 different ways!
In the end, the clock read 4:30 pm, and I said, “UFF!!!!!!! SCREW IT!” I got up and went home!
Watch me tomorrow morning figuring out how to set the dynamically made on the fly stupid foreign key value in the database with one easy step that I was too blind to see!
Now you know my daily work dilemmas! How much time can Mona waste trying to solve one problem?
I need to start drinking 4 or 5 cups of coffee while at work. I only had one today, and look what happened!
UGGHHHH!!!
Coffee! Coffee!! Coffee!!!
Can someone buy me these for my birthday in 2 months? You guys can start the Rebellious Arab Girl Coffee Obsession Fund!

Link to purchase
Angry, Blah Blah, Categorize this!, Random Thoughts, Ranting as usual!, Whatever!















Wouldn’t you rather have the “No, I will not fix your computer” travel mug? It seems more appropriate. How do I get it to you if I buy it?
If it bothered you that much all day long I’m guessing there’s a pretty good chance you might wake up with the answer! Or maybe just a few more white hairs
Do they have one of those “Caffeine is a proven productivity enhancer” signs over the coffee pot yet?
@mac
I want them all! My favorite is RTFM!
@Craig
I don’t think they have that, I have to search around. They got hilarious things for us Geeks on that site! I love it!
Yes, all techies have those days. Recently I spent 2 or 3 days trying to call some Fortran code from Java via C++ using GNU. This involved finding the exact right settings for the GNU compilers and linker, urgh!
The advantage is the sense of triumph and satisfaction on finally cracking such problems.
try thinking of a solution to export a csv that resulted from an asp.net file opearion to a stupid microsoft excel that can’t recognise the utf-8 format unless you re-saved the csv document. Programming sure is the hardest job with all these technologies around
Mona, you should start a programming forum! There used to be a lot of those, but they seem to be in short supply these days which is kinda weird since there are so many more programmers than there used to be! And the advantage of starting your own would be that you could steer it towards the stuff you want to talk about and not have to put up with… everything else. Are you using Java? I already have my boilerplate answer ready: “Well, there’s your damn problem right there! You are using Java! If you were using C++ this wouldn’t even be an issue!” This made me a very popular guy when I was taking a Java class a while back. Java programmers really admire C++ programmers a lot. As they should, since Java is written in C++ which I always make sure to remind everyone about. And also, the whole “Java uses C++ syntax” thing. But even so, Java programmers are better than CLR(C++) programmers. What a bunch of posers. Java is more like C++ than that Microsoft.NET crap.
Uh, yeah, um, I didn’t understand ANY of that.
But, I do love your blog.
@Craig
No, instead you’d have lots of memory leaks and unportable code
@Jennifer @ Living in My Car
I love your avatar picture by the way!
Thank you!!
You guys! I code web applications! I code in PHP! And I use MySQL or PostgresSQL for DB.
I hate c++! I also despise Java! The world changed, and everything is web-based now!
@Mona
Java’s okay, especially for application server programming.
@Meyrick Kirby
No, instead you’d have lots of memory leaks
I’ve never released a program with memory leaks! That’s what QA is for!
and unportable code
C++ is portable. Just gotta recompile on the target platform. Piece of cake. On the other hand, Java isn’t at all portable because it requires Java to be running on the host machine. In other words, Java *is* a platform.
See? I have all the bases covered! :p
@Mona
The world changed, and everything is web-based now!
All the operating systems are written in C++! All the browsers are written in C++!
And I use MySQL
MySql is written in C++! But you are right, the world is changing! I was writing database utilities for “MySql” back in the days when it was called “Sequel Server”
I’m just giving you a hard time. I do commercial and industrial software development, which is a niche industry. Most people (even other programmers) don’t even know what that means. I know 95% of programmers work in IT and related
@Mona
By the way, my mom does a lot with PHP. And Java. She actually hired me once to write a custom C++ app for one of her clients. Because Java wouldn’t get the job done. *running for cover*
@Craig
You think you’ve never released a program with memory leaks. Memory leaks on client programs are less of an issue, but on server’s they are.
Which is a nightmare if you have to compile 3rd party code as well.
Oh yes, really hard to get JVM’s for different platforms
App servers are written in Java … or .Net
And Oracle, the big grand daddy of databases, is written in Java
You think you’ve never released a program with memory leaks.
Nope! I *know* I have never written a program with memory leaks
Memory leaks on client programs are less of an issue, but on server’s they are.
I might care about that more if I wrote apps for server side. I’m client side. And it’s impossible for a client side program to cause memory leaks on a server. Last I checked people writing server side apps weren’t doing it with Java, either. Those programs usually run in the background and don’t even have a user interface, so I’m not sure what purpose Java would serve?
Which is a nightmare if you have to compile 3rd party code as well.
That’s why I get paid the big bucks! If it was easy, everyone could do it! And besides, when Windows has 90% + of market penetration what good is cross-platform compatibility? The last time I was asked to write a program for anything but Windows was in 1991, and that was when people were still using DOS. That was also when I was a C programmer, not a C++ programmer. And it was several years before Java even existed. It was even before Visual Basic existed
Oh yes, really hard to get JVM’s for different platforms
You bypassed the whole issue that Java programmers aren’t writing applications on the operating system. They are writing applications that run on Java. And you can be sure that the C++ programmers who created Java (in C++) are having to adapt and recompile the JVM and JRE applications for each target platform. Try running the Windows JRE on a UNIX box?
App servers are written in Java … or .Net
I don’t even know what the hell an app server is. Not my field!
And Oracle, the big grand daddy of databases, is written in Java
I think not! Oracle predates Java by more than a decade. It used to be written in C language. I’m sure they still use that C language legacy code (there’s still a lot of C language in windows, believe it or not) but by now they must have updated it enough to at least put it in a C++ wrapper.
And seriously… you are trying to claim that Oracle is totally dependent on Sun and Java to even be installed? Let alone to run? Wouldn’t that make Sun Microsystems the big daddy of them all, if it were true?
Anyway, Oracle has always been good about providing interfaces (APIs). Providing a Java API or even a set of Java tools in no way means that Oracle itself was written in Java. I’ve been developing commercial (that’s retail) and industrial(sold to businesses) software for nearly 20 years. I know how it’s done
I checked on your “app server” thing and this is what I found:
http://en.wikipedia.org/wiki/Multitier_architecture
Application tier (Business Logic/Logic Tier)
The logic tier is pulled out from the presentation tier and, as its own layer, it controls an application’s functionality by performing detailed processing.
That’s middle-ware. So from your application, you aren’t actually doing the work. You are calling functions (or modules as you Java folks like to call them) in the app server to do the work for you. At the level of the Java app programmer, you don’t even know what’s happening inside that app server, and you don’t need to. However, as a Java programmer you also have no control over it. For all intents and purposes, that Java app server is a third party library or DLL. We’ve been doing things that way for since the mid 1990s. The only reason with Java or .NET applications you need a cistom written app server in Java or .NET is because Java and .NET programs can’t run (at all) without the Java runtimes or Microsoft .NET frameworks. 100% of the program’s functionality comes from those runtimes. None of the funtionality comes from the host operating system. You can argue that this is superior to programs that interact directly with the OS if you like, but the only advantage to doing things this way is that it’s easier on the application programmers, as most of what they need to get done has already been done for them and is sitting in the runtimes waiting to be called. That’s a pretty sever limitation considering it’s impossible for a Java or .NET programmer to do anything that the runtimes don’t support. There are also major performance issues.
I took a class on Java a while back and I kept asking how I could do things in Java that I’ve often had to do in C++ on the job. Most frequent answer I got was “I don’t know”. Second most frequent answer I got was “You can’t”. And what the hell is all that “bag” stuff about with the user interface layout? Is that a nightmare or what!? It took me 6 freaking hours to do a simple dialog box layout, and I’ve been doing GUIs since the early 1990s! I’ve never even seen a GUI implementation so crude! I could code a GUI myself using graphics functions and C language 20 years ago than I can with the Java automated tools! WTH? This is considered advanced stuff, for Java?
Nothing like a good IT mud wrestling contest
Only on client machines. I’d say unix/linux make up a good portion of the smaller size servers. The big servers will rarely touch Microsoft software. Plus with Java the 3rd party software comes pre-compiled in jar files, ready to just drop into the class path.
That’s the whole point. Then only the JVM has to be platform specific, the rest, including the standard JRE library is platform independent.
I think so. I’ve got a copy of Oracle on my machine right now, and it’s mostly jar files. Oracle uses it’s own JVM.
If you go to the Oracle website, you will see Oracle in heavily invested in Java, with their own Java IDE, JDeveloper. More to the point, Oracle is trying to buy Sun!
Of course, Scala is better than Java
@Meyrick Kirby
OK, first things first!
If you go to the Oracle website, you will see Oracle in heavily invested in Java, with their own Java IDE, JDeveloper. More to the point, Oracle is trying to buy Sun!
I followed your advice! Even before you gave it! heh. I guess that’s a programmer thing.
This is what I found:
http://www.orafaq.com/wiki/Oracle_Corporation
1999 – Oracle 8i (the “i” is for internet) or Oracle 8.1.5 with Java integration (JVM in the database)
They didn’t write Oracle in Java. They built the JVM into Oracle. Since the JVM is written in C++, that probably was pretty easy for them to do… they just included the JVM code when they complied.
Is case closed on this? Going to move on with the next comment.
PS-my Captcha words are “43 flaming”… somebody is actually keeping count!? I bet this Captcha tool is written in Java
Err, no. The JVM runs the Java bytecode. The Standard JRE library provides a lot of functionality, most of it written in bytecode but some of it in native code (i.e. C or C++). Applications servers generally provide the enterprise functionality, such as object-relational mapping, session beans, messaging services, mail, web pages, etc.
As for GUI’s, the standard library includes Swing, which is powerful, but complicated (although modern IDEs make it considerably easier). Which is why other GUI libraries, such as SWT, have been created by 3rd parties.
The Oracle JVM mean Oracle is not dependent on having any other JVM installed on the server. Instead the large number of jar files which I’m looking at right now are run on the Oracle JVM.
@Meyrick Kirby
Nothing like a good IT mud wrestling contest
I told you! I don’t work in IT! My mom was a COBOL programmer on mainframes when I was born and I would not ever work in IT even if they held a gun to my head! For what it’s worth, when I first started taking classes in C language in the late 1980s and announced my intent to become a PC programmer, my mom was capping on me about “Why do you want to do that!? You’ll never be able to get a job as a PC programmer! PCs are just toys! All the real work gets done on the Mainframes!”. So I know exactly how it feels to think you are ahead of the curve and that times are changing, and have somebody else tell you it ain’t so. Only, I was right! I’m not so sure you are… we could say that time will tell, but Java’s already been around for 15 years and it doesn’t do anything now that it didn’t do then. In fact, Sun has drastically reduced it’s expectations for Java and limited it’s intended scope. When it first came out Sun thought that it would knock MS Windows and the PC off the top of the heap. Sun makes UNIX boxes after all! Now they seem to be happy offering Java as a product, rather than an alternative architecture.
Only on client machines. I’d say unix/linux make up a good portion of the smaller size servers.
I’d say you are right. The server side programmers I’ve usually worked with in the past have been UNIX C/C++ programmers.
The big servers will rarely touch Microsoft software.
Doesn’t really matter. Desktop machines account for… what…. 99% or more of all computers? That’s not to say companies don’t spend a lot of money on server side apps because they do… they spend a HUGE amount of money on that stuff. But, the client side boxes that connect to those servers are almost universally windows PCs. So for a client side guy like me, I don’t have to worry much about portability. Doesn’t matter to me what OS is on the other side of the network connection. I don’t even need to know.
Plus with Java the 3rd party software comes pre-compiled in jar files, ready to just drop into the class path.
OK… you do realize that’s not easier than dropping a .DLL into the OS path and compiling with a .lib, though, right?
That’s the whole point. Then only the JVM has to be platform specific, the rest, including the standard JRE library is platform independent.
Well, my whole point was it’s not platform independent. The platform is Java itself. A Java app won’t run in any other environment.
But I do acknowledge what you are saying. As a Java programmer, you don’t have to worry about that. You just have to make sure the end user has Java installed.
I think so. I’ve got a copy of Oracle on my machine right now, and it’s mostly jar files.
Those are APIs. They allow you to interface with the internal JVM that Oracle decided to build into Oracle that I talked about in the previous comment. Oracle used to provide (I’m not sure if they still do, haven’t worked with Oracle in a while) OCI – which stands for Oracle C Language Interface – which was the same way. It was a collection of .c source files, and .h header files. You included the header in your source and the .c files in your project, and you could call all those functions to interact directly with the database. Or, you could use ODBC drivers which is what I preferred to do. Or you could do both.
Of course, Scala is better than Java
Jeez. Something else I’ve never heard of! C++ rules them all! Java is written in C++! Think about that! Would the original creators of Java have written Java in C++ if C++ wasn’t the greatest language EVER!? :p
@Meyrick Kirby
re: comment at 18:17,
You realize you are talking about Java-specific architecture, right? Because you seem to be implying that’s some kind of standard thing. I have no idea what you’re talking about with most of that. Nor do I need to! My programs compile and run just fine without me knowing! So, anyway, if you want to get into Java internals and talk about how they do things, I am totally unqualified to do that! I only took one class!
As for GUI’s, the standard library includes Swing, which is powerful, but complicated
Swing is not the GUI layout tool. It’s a control library. The GUI layout tool defines where and how those controls appear in the user interface. If you don’t use a GUI layout tool they just show up in the order they appear in code, left to right top to bottom in sloppy and haphazard (and ass ugly!) manner.
And if you use the GUI layout tools, you spend 6 freaking hours of OMFG I’m pulling my hair out here torture, and it’s still ass ugly! This is of course just my personal opinion. But I could do a better layout in MFC in 2 minutes than you could in Java in 2 hours. And I can prove it!
(although modern IDEs make it considerably easier).
You got that right! But they ain’t that modern! Visual C++ came out in 1992 with a GREAT IDE – that’s where the “Visual” name came from. Their previous C/C++ compiler had a crap IDE, and everyone used Borland C/C++ because it didn’t suck, instead. Java came out in… 1994? With nothing.
OK, coming up on dinner time for me! Have at it!
This thread is turning to a programming argument. If you guys really want a programming forum, and you promise me to act like administrative and live up to the part, then I can buy a domain and set one up. I think it would be a great idea!
Are you guys up to it? Craig and Meyrick!? Email me and tell me what you think.
@Craig
One more thing before dinner! (this is from Oracle’s FAQ that I referenced earlier)
# 1980 – Oracle 2 released – the first commercially available relational database to use SQL. Oracle runs on on DEC PDP-11 machines. Code is still written in PDP-11 assembly language, but now ran under Vax/VMS.
# 1982 – Oracle 3 released, Oracle became the first DBMS to run on mainframes, minicomputers, and PC’s (portable code base). First release to employ transactional processing. Oracle V3’s server code was written in C.
Do you see any reference for what language Oracle was written in, after that? I don’t. And I assume since they made a point of mentioning their transition from assembly language to C, that they would have mentioned additional changes! I’m reading that as meaning Oracle is still written in C (not C++) language. That really surprises me.
@Mona
Mona, if you set one up I promise to participate! But act “administrative”… hmmm… anyway, sure I’ll send you an email about it! (and are you telling us to put a sock in it?
)
@Craig
Java has evolved, now onto version 6, although it seriously needs closures. More importantly Sun thought it would be used for writing Applet in web pages, but that never took off. Instead, it’s become the main language for middle ware (application servers), probably because there is quite a diversity of platforms on the server side. This is why Microsoft came up with it’s own virtual machine platform .Net.
Only if you have the pre-compiled DLLs (or archive files on linux). If not, which is common with open source software, you have to compile it. Most Java open source software comes pre-compiled, since they only have to compile it once.
Matters to me
Okay, you’re getting very confused. AWT and Swing are the standard GUI APIs, althought SWT is a well known one from IBM. AWT includes an number of layouts, which position the GUI components (the components and layouts are both part of the APIs). Java IDE’s such as Eclipse, NetBeans, IDEA, give the programmer the ability to design the interface without bothering with the direct code, just as with Visual C++, etc.
I’m going to run a script over my copy of Oracle to show how much is actually java bytecode, i.e. jar files. Although I believe the the Linux kernal is written in C not C++.
@Mona
Hey, what do you thkn this is, your own personal blog or something
Guys!! Stop arguing about programming.. I will soon get a forum or something interesting like an advanced blog about programming arguments soon. I think it will be a great place to spill it out!
EXE & DLL files = 118,815,648 + 109,394,183 = 228,209,831 bytes
JAR files = 853,340,794 bytes
@Meyrick Kirby
Only if you have the pre-compiled DLLs (or archive files on linux).
There is no other kind! DLLs are exutable files. It it hasn’t been compiled and linked, it isn’t a DLL. It’s source code.
I understand your confusion though, because Java does not create executable files.
If not, which is common with open source software, you have to compile it.
I don’t know if it’s common to distribute open source projects as executables or as source code. I don’t do open source, I do commercial (means, my projects get sold for money!)
Most Java open source software comes pre-compiled, since they only have to compile it once.
I don’t find it any more difficult to manage C++ projects even with third parties involved than Java. But maybe it’s just me. I’ve seen how much Java programmers struggle with trying to learn C++. I struggled with it myself, and I was already a working C programmer with a couple years professional experience when I learned C++. It isn’t easy. And that is perhaps the biggest advantage of Java. It uses C++ syntax and C++ design philosophy but it’s vastly simplified.
Okay, you’re getting very confused. AWT and Swing are the standard GUI APIs…
lol. I’m not the one being confusing! Swing is a class library. Like MFC… you know MFC, right? Microsoft Foundation Classes? Same thing, but for Java. In fact, everything from Sing is modeled directly upon the MFC equivalent, in form function and even syntax.
Anyway, the objects that you instantiate from from Swing classes are GUI controls. You could call them GUI components, but you can’t call them an IDE which is what you seemed to be doing… I was talking about the Java layout managers, and you came back at me with Swing. What am I missing?
EXE & DLL files = 118,815,648 + 109,394,183 = 228,209,831 bytes
JAR files = 853,340,794 bytes
You are comparing compiled and linked executable files to raw Java archives? And what do you think that tells you?
I’m not sure what the problem is… the FAQ that Oracle provided to explain Oracle’s development history looked pretty clear to me. I guess you can try to prove Oracle is being deceptive if you wish, but that seems a bit counter-productive to me! I’m willing to take their word for it
@Mona
Sorry! I totally apologize for turning your blog post into nerd rage campaign! It’s partially your fault though! You mentioned programming!
Meyrick, I apologize if I offended you. This is just the way I argue about programming stuff… don’t mean any harm by it
Last thing! Promise!
I understand your confusion though, because Java does not create executable files.
Before you nitpick at me there, consider that I said “standalone executable files”. I know you can jump through hoops to make virtually anything run as if is an executable, even when it isn’t!
DLLs are exutable files
Strictly speaking they’re not. They’re compile code that is used by EXE files. The EXE files are the executables, hence the extension.
I know the difference between a source files, a DLL, and an executable.
Many open source licenses, such as the Lesser GNU License, allow programmers to incorporate the software into proprietary software that is sold on. In other words, there are plenty of open source projects that supply the functionality for software being sold. I myself am using a number of pieces of open source software to build a prototype of the company I work for. This is much easier since the code comes pre-compiled in jar files. Programs like Apache, especially for unix/linux platforms come uncompiled (although many linux distros include Apache).
Yes, I know! AWT & Swing are class libraries (API’s) for creating GUI’s. The layout managers are part of the AWT library. Coding GUI directly using AWT & Swing directly is difficult because of the complexity of Swing and some of the layout managers (e.g. GridBayLayout), but with an IDE you don’t have to directly code, ergo easy to use. Or to put it another way, IDE’s make using layout managers easy, especially since they tend to come with their own 3rd party managers as well, such as NetBean’s Absolute Layout.
What do you mean by raw Java archives? Jar files are compiled and compressed Java. Although it’s not perfect, the comparison suggests Oracle has far more lines written in Java than C or C++.
@Meyrick Kirby
Hmmm…. I guess I have to recant on my promise to discontinue here! I’ll try to keep it brief though.
Strictly speaking they’re not. They’re compile code that is used by EXE files. The EXE files are the executables, hence the extension.
That’s a mis-statement of fact. DLLs are commonly loaded by the operating system and perform numerous functions without any external inputs. Other examples of executables that are not application (I think that’s what you mean when you say executable, right? Application?) are device drivers. And file extensions have nothing to do with whether or not a file is executable or not. Compiled and linked object code which is arranged in such a way that the operating system can execute the instructions in that file is “executable”.
Fake executables (like a self extracting archive) are created by wrapping them in executable object code that tells the OS what to do with them next, even if the only instruction is to load an external program and pass the contents of the file to it.
I know the difference between a source files, a DLL, and an executable.
Could have fooled me! Have you ever learned a low level language?
As far as open source… yes, it would seem that it should be normal to distribute the source files. That seems implied with the concept of “open source”. I don’t really want to argue about this, because “open source” has been around longer than Java has, and even now I’d guess there as many C/C++ open source projects on the internet than Java ones. And no, I don’t want to argue about that!
Yes, I know! AWT & Swing are class libraries (API’s)
You are misusing the term “API”. That stands for “Application Programming Interface”. They are generally for interacting with an operating system or some other piece of complex third party software. A class library may or may not constitute an API. The Windows SDK of old was a C language API. MFC is a C++ API. To call a class library that contains a set of GUI controls an API seems a gross over-simplification. But whatever! I’m just pointing out you seem to be implying “class library” is a synonym for API. Not so. APIs have been around longer than object orientation and classes.
OK, enough of this for real. I don’t understand how we got from the difficulty of designing GUIs in Java to Swing components. I just don’t get where that came from. And I don’t want to dig that hole any deeper.
What do you mean by raw Java archives? Jar files are compiled and compressed Java. Although it’s not perfect, the comparison suggests Oracle has far more lines written in Java than C or C++.
No, it doesn’t suggest anything. Java is a notorious pig. Resource intensive and slower than hell at run time. And you are comparing it to the most efficient language in existence. Compiled C/C++ code is as efficient as assembly language, which is why everyone switched OS development from assembly to C back in the 1980s. You’re comparing the worst to the best and claiming that the worst won lol.
Bottom line is that Oracle seems to be claiming Oracle is written in C language. If you question that, take it up with them!
Damn… looks like I lied about being brief too! Now I gotta go hang my head in shame
Fooling you would not be difficult! Since I know C/C++ & Fortran, I know how to create DLL’s and executables. As for low level languages, who programs in machine code or assembly language? Do you?
But this is besides the point. The point remains that using code from open source projects in C/C++ is often harder than in Java, because the former has to be compiled, while the latter does not. Try compiling the Apache web server! I might add Java has an easy and powerful build tool in the form of Ant.
Doubtful now. Take Apache, it’s written in C/C++, but if you look at the Apache web site you’ll see most of the projects are in Java (mainly because it’s server side). That said, PHP is probably the winner these days.
A class library will have have an API. If a class library had no API, it would be pretty useless. But this is all academic. The point remains whether you call the layout managers classes or API, they are easy to use with modern IDE’s.
This is ancient news! Modern JVM’s are much faster. They are memory hungry, but since RAM is cheap these days (NEC had to close down it’s manufacturing operations in Europe because RAM became so cheap), that’s not a big problem.
Besides, the speed and memory use of Java has nothing do with the size of the compiled files, whether DLL, executable, or Jar file? Oracle appears to be written more in Java than C/C++.
@Meyrick Kirby
Fooling you would not be difficult!
See? That’s how we got in this difficulty in the first place! You even emoted the “forehead slap” at me!
Since I know C/C++ & Fortran…
Dude, don’t overstate your credentials. I’ve seen enough in this conversation to be comfortable saying you don’t even know as much about C or C++ as what I’d expect to see from a beginning student. And the Fortran thing… Fortran was a student’s language in the 1980s. It’s never been used by professionals. Not then, and certainly not now.
I know how to create DLL’s and executables.
So does anyone who can manage to get through the “Hello World” tutorial in Chapter 1 of a text book. Being able to create one and knowing how they work and what they do are completely different things.
As for low level languages, who programs in machine code or assembly language?
Best evidence of all that you don’t know C language right there. If you had, you’d know that C (and C++) are both high level and low level, at the same time. Anything that can be done in Assembly language can also be done in C. And it will work just as well. Anything that can be done in Java can also be done in C/C++. And it will work MUCH BETTER than the Java version.
And that’s the reason why professional development in any language other than C/C++ came to a screeching halt about 1990, on every platform other than the mainframe.
Do you?
Yep, I know a little assembly language. My first programming job was embedded systems. You know what they had me doing? I was converting assembly code into C language. So that’s the extent of my knowledge of assembly… being able to read it. But all the systems stuff has been done in C/C++ since about 1990. Including Oracle :p
Ever tried to get a device driver written in Java? Give it a shot! Should be fun for you!
But this is besides the point. The point remains that using code from open source projects in C/C++ is often harder than in Java…
I don’t recall that ever being a point. You raised it and I shrugged.
…because the former has to be compiled, while the latter does not.
And compiling stuff is like… torture…
Seriously… kids today… everything has to be easy…
Try compiling the Apache web server! I might add Java has an easy and powerful build tool in the form of Ant.
…?
Try compiling Windows 7 with Ant! Let me know how that goes!
Doubtful now. Take Apache, it’s written in C/C++, but if you look at the Apache web site you’ll see most of the projects are in Java (mainly because it’s server side).
I think mainly because there are more java programmers than C++ programmers…
That said, PHP is probably the winner these days.
These things change all the time. I’ve seen a lot of greatest-thing-evers come and go. The only thing that doesn’t change is that nobody beats C++. Nobody.
A class library will have have an API. If a class library had no API, it would be pretty useless.
You are referring to sets and gets as an API? Well, that’s pretty low brow! Or is it pretentious? So, when I write my own classes the public functions are actually an API? That I am providing for myself? Because, presumably I need an easy way to interacting with my own code?
This is ancient news! Modern JVM’s are much faster.
My ass! It takes freaking 5 minutes for Eclipse to load with a project off of my flashdrive. I can boot Windows XP faster than the average Java App of any complexity will load. You gonna sell me some land in New Jersey along with that excellent version of the JVM?
They are memory hungry, but since RAM is cheap these days…
lol. I think Dvorak used exactly that line in about 1993 when he was debating the pros and cons of using C++ object orientation versus traditional C language techniques. I remember, because I was upgrading my PC and I was thinking… dude, RAM ain’t that cheap! I was also not fully onboard with C++ )or object orientation) yet, which might have made me a bit skeptical.
(NEC had to close down it’s manufacturing operations in Europe because RAM became so cheap), that’s not a big problem.
Speed is a big problem. And I know that Java apps are never big enough to start grinding up virtual memory, but imagine what a dog a Java app as big as that would be? Even C++ apps (like PC games) can start seeming sluggish when they are pushing up against hardware limitations.
Besides, the speed and memory use of Java has nothing do with the size of the compiled files, whether DLL, executable, or Jar file? Oracle appears to be written more in Java than C/C++.
Appears to be? lol. I don’t know what you make in annual salary, but the next time you say that without proof I’m gonna ask you to put up a years pay on it! I could use a new car or two!
I know you can’t execute a DLL from the command line, you don’t. See, nothing like a good mud wrestling contest.
For application develop no. For mathematically and scientific applications, it is used quite a lot. That’s what I’m connecting into right now, using C++ as a bridge.
Duh! C has low level capabilities, but since it also provides abstractions over the computers instruction sets and memory locations, most people would not categorize it as a low level language. Certainly Wikipedia doesn’t.
Evidence? Java’s awfully popular for a language nobodies using. Come to think of it, who writes web pages in C++? Who writes middleware in C/C++?
You claimed C is more portable than Java, which from a practical development point of view isn’t true, since with the former you need to compile for every platform.
I didn’t ask if you know assembly language. I asked if you do code in assembly language? I know a little Ada (probably very rusty now), but I don’t use it.
You really don’t know what an API is do you?! At an abstract level an API is the calling conventions used by external code to utilize the functionality of the library, which means the API can be implemented by numerous different libraries. In Java that amounts mainly to the public class signatures as shown in the Javadocs. This is why AWT and Swing are API’s. Sun’s JRE provides one implementation of AWT & Swing, and GNU’s Classpath provides another.
I trust the benchmark tests over your experience with a flash drive. I might also point out that startup time and the speed own a program have started are different things, indeed, to some extent inversely related.
Err, so are you saying RAM is cheap or expensive?
Finally, I’ve already given my evidence that Oracle is written more in Java than C/C++. Evidence from Oracle 11g. Your evidence was from 1982!
P.S. Fun this isn’t it!
I know you can’t execute a DLL from the command line, you don’t. See, nothing like a good mud wrestling contest.
Ah, but what you don’t know is that is completely irrelevant as to whether or not something is an executable file or not! :p
For application develop no. For mathematically and scientific applications, it is used quite a lot. That’s what I’m connecting into right now, using C++ as a bridge.
Yeah, and when you get tired of banging your head against the wall you’ll hire somebody like me to just do the whole thing in C++, and you’ll send him(or her) your half ass source code to give him a head start. Been there already! A long time ago. Although I have to admit most the Fortran programmers I’ve met in the past were using Basic to try to fill in the gaps.
Duh! C has low level capabilities, but since it also provides abstractions over the computers instruction sets and memory locations, most people would not categorize it as a low level language. Certainly Wikipedia doesn’t.
Eh… are you admitting that you didn’t know that C/C++ was had the capabilities of a low level language until you checked wikipedia just now!? I’d take that better if it wasn’t for the “duh” you threw at me! Well, I don’t know what your skillset is like but you’ve got a programmer’s attitude at least!
Evidence? Java’s awfully popular for a language nobodies using.
Evidence? Besides being a professional software developer at the time? Well, yeah… you could go find any number of trade journals being published at the time. Or you could check on the development history of major products to see what languages they were created in. But we’ve already had a problem with you refusing to accept the developer’s own word for what they created their products with, haven’t we?
As far as Java… Java came out in 1994. Visual Basic came out in… 1992 I think. I was talking about 1990. Since you weren’t there, I’ll tell you a little about what happened in the computer industry in the early 1990s. Something called the “information age”, and sometimes called “the PC Revolution”. You see, until about 1992 not many people owned PCs. Maybe 1 person in 50. The vast majority of programmers (including all of IT) were COBOL mainframe programmers. And most of them found themselves suddenly out of a job when mainframes became obsolete almost overnight. In the space of about 2 years, not only does everyone have a PC but lots of people have 2, and businesses are entirely PC based except for servers that are mostly UNIX boxes of one type or another. So here are these 20 million COBOL programmers who don’t know anything about PC programming. Don’t know any languages that are in use on the PC. But they know about IT. And they know about databases. And on the flip side, you have these few thousand C/C++ PC programmers like me who know how to create device drivers, know how to create GUI apps that do cool shit like watching porn, know how to do online and network communications, know how to create games but… we don’t know a damn thing about IT. Or databases. Nor do we want to. So what to do? Teach those COBOL programmers C++? Fat chance. C++ is frigging hard. And it’s as dissimilar to structured COBOL as any two languages could be.
Microsoft answer was Visual Basic. Shortly after that Sun Microsystems came out with Java. And the rest is history.
Come to think of it, who writes web pages in C++?
What C++ programmer does web development?
Who writes middleware in C/C++?
Every professional C++ programmer on the planet? What do you think all those DLLs are?
We just don’t tend to use all those fancy names like “app server” and “middleware”. It’s just teh way stuff gets done. If you have 3 different apps that all need access to the same funtionality, it makes sense to break that out into an external DLL rather than having it built into each project. Then you Java folks show up and start giving important sounding names to all the stuff working programmers had been doing all along and act like it’s something new
You claimed C is more portable than Java…
I think what I claimed is that Java is not portable at all. Java runs on the “Java Virtual Machine”. The fact that the JVM serves as a platform instead of the OS being the platform is implied in the name, no? Your Java code doesn’t care what OS is running, because your Java code has no access to the OS. Your Java code only has access to the JVM. I understand this matches your definition of cross-platform portability, but it doesn’t match mine.
I didn’t ask if you know assembly language. I asked if you do code in assembly language?
I think I answered right? And you mentioned “machine langauge” as well, which I found a bit odd. You can’t program in “machine language”. That’s pure binary object code. I suppose in theory you could use a hex editor to make a binary file one byte at a time that would actually run, but as far as I know nobody has ever done that.
I know a little Ada (probably very rusty now), but I don’t use it.
I know a little of a lot of stuff, but I don’t claim proficiency unless I’m proficient.
You really don’t know what an API is do you?! At an abstract level an API is the calling conventions used by external code to utilize the functionality of the library…
This is just ridiculous. I suggest you take a Computing 101 course at your local community college. Or you could try subscribing to MSDN. I’m not here to educate you, especially when you’ve been playing the know it all from the start.
Finally, I’ve already given my evidence that Oracle is written more in Java than C/C++.
No, you’ve given your opinion based on looking at the sizes of some files are on your hard drive. I have trouble believing any programmer would stake his reputation on such a harebrained scheme, especially when trying to prove a claim he himself had made. But you’ve said a lot of things in this discussion that are factually incorrect without even bothering to check to find out if you were right or not, so… no skin off my nose.
You suggested I check with Oracle. I did. The Oracle FAQ (which is current) says that Oracle is written in C, and that it has the JVM built into the database.
Evidence from Oracle 11g. Your evidence was from 1982!
Did you have a point? They mentioned they switched from Assembly Languiage to C in 1982. No further mentions. Since every other commercial software product I know of is written in C/C++ today, it seems to me that the most logical explantion of why they made no further mention of switching to another language is that they never switched to another language. Even Java itself is written in C/C++ but you somehow have come to thing that Oracle would go through all the effort of porting their flagship product from the best and most efficient language available to one of the worst and most inefficient languages available? It’s ridiculous on its face, and it directly contradicts what Oracle says here:
1999 – Oracle 8i (the “i” is for internet) or Oracle 8.1.5 with Java integration (JVM in the database)
JVM integrated into Oracle. Not Oracle written in Java. They worded it that way for a reason.
And as somebody who HAS done low level programming, I’m here to tell you that only a low level language is capable of the kinds of file operations that Oracle has to perform. It would be impossible for Oracle to be written in Java. Java isn’t a low level language.
P.S. Fun this isn’t it!
Yup! Just how I love to spend my Saturday nights! If anyone ever hears me mumbling about becoming a teacher, just shoot me. And remind me to vote for higher salaries for college profs next time it comes up in a proposition.
Nope, you still don’t know the difference between a library and an executable.
Another
: moment. I didn’t write the Fortran code, why else would I be linking into some from Java? The code has been developed over 2 decades by physicists. Fortran is popular with physicists because it’s geared toward mathematical operations, e.g. it has complex numbers, neither C/C++ or Java do (Scala does). You couldn’t write the code, unless you happen to have a PhD in the physics of detonation (of course neither could I)
I was well aware you can shift data around specific memory locations, it’s just not important most of the time. Far better to write simple, modular, & flexible code, and then profile to discover the areas where optimisation is necessary.
Oww, poor you! Besides, the difficult bit is the memory management, which as explained above, is a waste of time. Oh, and adjusting for different platforms, and numerous other things which distract from concentrating on the actual business problems. Hence the drive for syntatically efficient code (e.g. Scala) and rapid application development (e.g. Rails and Oracle Apex).
So you don’t think much of web development or web developers?
Err, do you even know what a n-tier/multitier system is? This is the standard way to design server systems. Generally, it will be a 3-tier system: the data layer, database and object-relational mapping; the application/logic layer, usually an application server such as Oracle’s WebLogic app server; and finally a presentation layer, such as either a web server or web service.
My definition is you write one piece of code, compile it once, and use it on multiple servers/platforms. Your definition would appear to be, write once, compile (e.g. Windows), adjust for a different platform (e.g. Linux with a different filesystem syntax), recompile, adjust again for the 3rd platform (e.g. Solaris), compile, etc. I see what you mean, very portable
Once upon a time people did. Once upon a time they used to use punch cards.
Yes, it is ridiculous that you don’t know the difference between an API like AWT, Swing, SAX, JPA, and its implementation.
No, my evidence is based on quantitative amount of code written in C/C++ and Java for the Oracle Standard 11g database.
No, I think as the Oracle database has expanded (the installation file expanded from 800MB to 1.8 GB from 10g to 11g), most of the new code has been written in Java.
Curious thing to say, given that above you said:
A bit of a contradiction don’t you think? How can you know what file operations Oracle does, when you don’t know, by your own admission, anything about databases?
You need to get out more, otherwise you’ll end up coding on Saturday nights, or even worse, Friday nights
I absolutely LOVE coffee. I guess that it is the stuff that keeps us going. I’ll have to get one of those.
I too program, but I don’t want to get into any coding arguments over which language is king. I will say that sometimes you can see me staring at the screen for minutes at a time only to find me typing frantically a few minutes later. I tend to code in my head. I guess it’s being too abstract.