06-21-2009 02:07 PM - edited 06-21-2009 02:13 PM
I have resigned myself to the fact that without rewriting operating system code, I can't load native applications. However I am not limiting my self to not rewriting operating system code. I'm sure I could implement a native loader given the chance. also, I will know which processor its running on, because I know what phone I have, and I don't plan on giving my code to anyone else. I'd like to be able to see what the lowest level looks like here. If you can reload an operating system, you can load whatever code you want. So, if I can figure out what processor the 8330 runs, I can code out systems level code for it, and in turn, load it. (I realize there is HUGE risk in this, please don't try to inform me of the risk of bricking the device)
I'm just wondering if anyone that posts on here is part of the team that does the low level development/has any knowledge of how it is done/has some source code to view, or anything else useful
or hell if you have to work for RIM, got any positions open?
by the way, thanks cwong15 thats the first answer that had anything to do with the question that was asked.
06-23-2009 04:23 PM
Oh OK....and be easy to the people on this forum . You and I know that C/C++ is a superior language but everyone is using java now and it kind of forces you to use it too!
I'm a hardcore C++/DirectX developer at home
Used to be a C++ programmer on the Symbian OS
J2EE developer at work
J2ME developer developing for Blackberries
so I understand :-)
06-25-2009 07:52 PM
yes, yes it does kinda FORCE you to use it....
This fact saddens me greatly, people are now willing to sacrifice speed and functionality (and actual programming knowledge) for rapid application development and not having to simply recompile the code for different architecture (lazy lazy lazy)
but at least there are some who still understand what programming actual code means
i mean i really wouldn't have as much of a problem with java if you could just do things like say type cast four bytes to an unsigned long or vice versa (using a function doesn't count, you can do this stuff in C like this: long = *(unsigned long*)&char) and if you cant read that, you should take a look at a systems development language.
03-31-2010 03:05 AM
I will not agree with you, in the earlier times, there was a C++ SDK for Blackberry (for few first models), it was later removed. Let us gues, why? Why MS is removing native applications support from Windows Mobile 7? Why Symbian has not ruled the world? It is native C++ coded operating system, supported by large ones (Nokia, Siemens, Sony Ericsson...) - there is only few applications for it.
Java has many advantages in mobile development against C++ languages:
I cannot agree also with statement "Java is slow": with JIT compiler on the board, lazy initialization and very good application flow design you may have response times close to native. User will never notice a difference between 1/10 of second and 1/20 of second. User will be happy if application notices him with wait screen or progress bar on process times larger than a half of second. Speed makes no difference, most important is good reaction reporting, correct time management and to avoid application lockups (when application is not responding because it is "thinking"). In these days speed has no meaning, network time has bigger meaning for end-user - user will not notice different between opening screen in C++ or Java but will notice difference when you must download something and you are using WiFi or 2G network.
03-31-2010 03:57 PM
you're logic disheartens me.
"Speed makes no difference." "In these days speed has no meaning..."
This kind of logic is why code is bulky these days and why interfaces seem slow on many applications that should by all means fly.
Also in speaking with the people overseeing some prominent hospital's networks, I have learned that they are indeed switching over to java (this is due to the lack of memory leaks and what not, in other words, instead of getting programmers who can code without making the novice mistake of leaving memory leaks in a program, they ditched the language). They are also noticing roughtly 20% performance hits. They are actually having to upgrade hardware in order to achieve the same functionality as before. The difference? They're using java. You cannot ever expect anyone with any sense to believe that you will not see performance hits when you have to have a middle man to execute code. running a program to run your program is always slower than letting the processor just do its job.
aaand as far as your little rant on why java is better for portability, you could have saved yourself some time by reading the part of the post that said this:
"...also, I will know which processor its running on, because I know what phone I have, and I don't plan on giving my code to anyone else."
Also, I don't necesarily even want to run this on the RIM OS. I might just be writing my own......or cross compiling one. The point is to get this to run on the chip, not the OS.
so, to sum up, we all know that java is portable. While that insight was so very helpful, it has very little to nothing to do with the topic, which was how to develop for the chip.
Again, we know that most users don't know enough to care about small amounts of lost time; however, I am a developer. I am always concerned with any amount of lost time. There are many reasons why I may have to run a loop with a high number of itterations. This just takes that little bit of lost speed and turns 1/20th of a second into minutes. Oh, but I guess in your program the user would have a little progress bar, so it wouldn't matter right?
04-12-2010 10:11 AM
I think you are looking at it wrong (like most of us tech people ). Anyone who knows will agree that the lower we go to develop, the more control we have, and thus the better the application will be (assembly is my favorite). However, that's not what drives technical decisions -- the business does.
If I'm at a startup or a large Fortune 50 company, the same rule applies: how can I develop what I need that will be good enough for the budget I have? To develop something in a high-level language like Java is cost-effective, but it will suffer issues which the business will decide if those issues are worth having in trading off for lower costs. If not, they may eventually decide to go deeper in the stack or to do different parts differently (like, maybe instead of a pure-Java application on the BB, they go with a webapp so the high-end processing can be done on a server in a lower (and faster) language). Why, as an owner of a company, would I spend 100x the cost for an application when the benefits (especially if it's a first release or prototype) are so small to the business? Faster or is it fast enough? Does it give the control that you need?
This is the reason that these tools are being provided the way they are from the companies with the hardware/software the applications run on. They know that other companies are needing to produce software quickly and cheaply to prove business cases and get a revenue stream coming in to support it.
For you, however, my guess is that RIM would say "We wish you all the luck in the world, but you are on your own." I don't think they'd have any issues with you trying to install a lower-level binary app on the device, but I don't think they are going to give you any help -- it's not in their financial interests to do so.
PS: Don't be so condescending -- you aren't about to find much help from people acting like that.
04-14-2010 11:49 AM
That may be the way to look at this from a business perspective, and I appreciate your input; however, I am looking at this from the computer science stand point. You could even call it academic The problem, on the Java topic, is not that business are looking for the cost effective solution, because any language can be cost effective if the programmer makes few mistakes and can code quickly (is experienced). The problem in my opinion is much more basic than that: the universities have stopped teaching low level languages, or if they still do, they don't push them or even talk about them like they are useful because they can do everything in .NET and Java now. I've seen countless programmers comming out of computer science programs that dont even understand memory management. Its a breakdown in the industry as a whole. As computer scientists / developers we should be constantly pushing to keep things fast and effective, and as a community, we are not.
In the end I really don't need help from RIM, would have been nice to get a manual though. I was simply looking for other programmers who may have insight into the areas I am looking.
As far as being condescending: I just absolutely cannot help but call out someone who is going to try to make themselves look smart by just repeating a whole bunch of stuff that has nothing to do with the topic at hand. Its not an "I know more than you" contest. No one cares how smart anyone on here is. All thats needed is relevant input. (I'm not directing that at you Matty)
04-14-2010 12:23 PM
As computer scientists / developers ...
I agree with most of what you said, but this is your issue, I believe: you think everyone coming into the field needs to understand the whole "stack" (pun intended) to properly create what's needed.
The universities/colleges are just training grounds for people to get skills in order to work in a field. Businesses are demanding people be trained in high-level languages in order to create business applications, so that's what the schools offer. I highly doubt any university *doesn't* still offer, for example, assembly language courses -- but they wouldn't be mandatory (like when we went).
Look at it this way: in preparing food, you have chefs and nutritionists. The nutritionists know everything about the contents of the food, the fat, the calories, etc. The chefs just know how to prepare dishes that people like and order -- they don't need to know what an antioxidant is or what it's for. They don't care about saturated versus unsaturated fats. They mix up and cook things for people to eat, while those nutritionists will analyze every little bit to make sure you get correct daily intakes.
There is a need for both types, just like in computing. We need mass, business application developers and programmers, and we need the low-level OS and device driver people. One needs to know how the whole thing works and the other doesn't. Just because they don't need to know how things works doesn't mean they shouldn't, but they aren't required to. But, it really comes down to what someone needs to know to get the job done.
And, because of that, I have a hard time thinking you'd find more than 50 people (outside of RIM) that even thought about what you are thinking of doing, and I'd be surprised if there was more than 2 that have even tried. And if anyone has, it was more curiosity than a need for it. Hell, most "programmers" would shudder at the fact of trying to install Linux from scratch, so the thought of wiping a smartphone and trying to install binaries on it would scare the piss out of them.