Question:
Cross platform development question.?
damnyankeega
2007-11-26 11:25:14 UTC
Recently I was given an assignment to develop code in C++ to automate some administrative tasks. The job was advertised as a Unix development position and an Oracle back end. Come to find out that they expected me to develop a develop the application for cross platform execution for Windows XP with a SQL server back end.

As if that wasn't bad enough, they expected me to do this using only ISO Standard C++ with a Gnu compiler and an old Vis. C++ compiler with no documentation. No DB libraries (AFAIK), no cross-platform libs, nothing. Not only that, but they had no requirements docs & no plan.

I had suggested doing the project in Python, but it was dismissed as he had no Python programmers to maintain it.

They wanted me to design and implement the system, but they did not want give me written requirements or the leeway to use tools of my choosing. And they wanted it in 3 to 5 months.

So the question is, was this as impossible a task as I thought it was?
Five answers:
DogmaBites
2007-11-26 11:58:50 UTC
I would run away. You generally use cross platform tools when your target environment doesn't support it's own dev tools (commonly embedded systems - e.g. DVD player, automobile controls).



there is no point in doing cross platform work if your target is Unix or Windows. Both platforms support their own dev tools.



Never mind the fact that they are being so secretive and cheap on tooling. That in itself is a huge red flag. They clearly are penny wise and pound foolish. It will be the worst 12 months of your life (Yes, I'm estimating it will actually take that long - the lack of known requirements guarantee that.)
tfloto
2007-11-26 12:47:12 UTC
The lack of up front planning (no requirements) is a problem. I've developed plenty of cross platform programs (Windows and linux). Win Dev does support the ANSII C++ standards but you would be writing command line (console) programs.

I think the task is definitely a challenge. But doable (maybe not in five months).

It sounds like you're a contractor. You will come across a lot of companies that expect you to come in and figure it out your self.

You have to be very proactive in the design and development and work within the constraints they apply. If you you are working and show progress they will ususally let the schedule slide somewhat.

I am not saying that this is a reasonable way to operate. That company obviously doesn't have its act together. I am saying as software engineer your will find a lot of these kind of jobs. Nobody in house has the expertise or time to do the work or specify the project so you come in with their wishlist and fill in the details.
Zwolf K
2007-11-26 12:04:17 UTC
Can you talk them into Java and ODBC? A C++ programmer has a pretty good shot at being able to read and maintain Java.



Right off the bat they have a conflict with insisting on ISO C++ on Unix and Visual C++ on Windows. Microsoft NEVER follows standards on anything, so there's a good chance the same source won't compile on both platforms. And if you do manage to create cross-platform compatible source, there's a good chance that what you have will look ugly on Windows because it won't be using any of the proprietary Microsoft extensions.



I wouldn't take a job with undefined requirements, and when they toss odd tool restrictions on top of that, I'd turn them down. But that's just me.
Pfo
2007-11-26 11:57:13 UTC
This does seem like an awfully daunting task. You'd have to essentially write an application layer that was compatible between Unix and Windows (at least that's the first step I'd take). That alone could be a 6 month project depending on how extensive of a library you develop.



If you did it in Python, on the Windows side you could plug it into .Net using IronPython or Python.Net. That way you could develop cross-platform business logic in Python and use it at will on any platform.
penney
2016-05-26 04:40:15 UTC
There's a whole bunch of stuff you can do. It just depends on what you want to make. If you're making a simple 2D game, look at Python + Pygame, which is an easy to learn language and an easy to learn Framework. If you want to make something 3D, look at Unity, which can be coded in JScript, C#, and Boo (which itself is based off of Python). Unity runs on Mono which means it works on just about every platform out there (including mobile phones and game consoles, although you have to pay for that).


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Continue reading on narkive:
Loading...