www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Smartphones and D

reply jim_g <example example.org> writes:
Hello 

I'm currently doing business with 4 commercial applications on Android 2.1+ and
iPhone 3GS+. One of the current problems is that we're facing the limits of
performance especially when developing Java which is interpreted on the oldest
hardware. Thanks to reddit I read about D recently and it seems to hit the head
of the nail squarely. I've used to think that more performance means less
"power" in the language when thinking in ways of simplicity (easy to read),
high level language features (nameless functions) and so on. BUT D has it all
in a nice package and solves all these issues.

My question is, how well does D support ARMv6 and ARMv7? I'd like to make full
use of auto-vectorization and inlining when doing foreach loops, iterators with
inline predicates, and array operations. Our problem with C on ARM is that many
compilers are still far from good. We wouldn't want to buy a commercial
compiler unless it's really worth its salt. Reading this newsgroup revealed
that D uses some kind of thing called 'lowerings' for optimizing high level
features. Does this avoid all these complex bugs?

Another question is, does D have any tutorials for building stuff on ARM? Any
Android/iOS bindings anywhere? Has anyone done any Android/iPhone development
in D? Would you recommend D instead of C/C++ for these platforms? If not, how
long will it take before D beats C/C++ on these platforms? How I see it is
there's not much time left to earn big money on these. Some popular
applications already become (adware) free because of piracy and competition.

Cheers

 = jim =
Jan 29 2011
next sibling parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday 29 January 2011 21:45:33 jim_g wrote:
 Hello
 
 I'm currently doing business with 4 commercial applications on Android 2.1+
 and iPhone 3GS+. One of the current problems is that we're facing the
 limits of performance especially when developing Java which is interpreted
 on the oldest hardware. Thanks to reddit I read about D recently and it
 seems to hit the head of the nail squarely. I've used to think that more
 performance means less "power" in the language when thinking in ways of
 simplicity (easy to read), high level language features (nameless
 functions) and so on. BUT D has it all in a nice package and solves all
 these issues.
 
 My question is, how well does D support ARMv6 and ARMv7? I'd like to make
 full use of auto-vectorization and inlining when doing foreach loops,
 iterators with inline predicates, and array operations. Our problem with C
 on ARM is that many compilers are still far from good. We wouldn't want to
 buy a commercial compiler unless it's really worth its salt. Reading this
 newsgroup revealed that D uses some kind of thing called 'lowerings' for
 optimizing high level features. Does this avoid all these complex bugs?
 
 Another question is, does D have any tutorials for building stuff on ARM?
 Any Android/iOS bindings anywhere? Has anyone done any Android/iPhone
 development in D? Would you recommend D instead of C/C++ for these
 platforms? If not, how long will it take before D beats C/C++ on these
 platforms? How I see it is there's not much time left to earn big money on
 these. Some popular applications already become (adware) free because of
 piracy and competition.
gdc or LDC might be able to build for ARM. I don't know. But dmd is x86 only (with x86_64 on the way). So, at the moment, you're not going to be able to build for ARM using dmd. I suspect that gdc can do it, since it's using gcc for its backend, but I don't know. There's probably a good chance that dmd will support ARM _eventually_ - as long as there's sufficient demand for it - but I doubt that it will any time soon. I expect that there are too many other things that need to be done for it to be a high priority at the moment. - Jonathan M Davis
Jan 29 2011
next sibling parent reply jim_g <example example.org> writes:
Jonathan M Davis Wrote:

 On Saturday 29 January 2011 21:45:33 jim_g wrote:
 Hello
 
 I'm currently doing business with 4 commercial applications on Android 2.1+
 and iPhone 3GS+. One of the current problems is that we're facing the
 limits of performance especially when developing Java which is interpreted
 on the oldest hardware. Thanks to reddit I read about D recently and it
 seems to hit the head of the nail squarely. I've used to think that more
 performance means less "power" in the language when thinking in ways of
 simplicity (easy to read), high level language features (nameless
 functions) and so on. BUT D has it all in a nice package and solves all
 these issues.
 
 My question is, how well does D support ARMv6 and ARMv7? I'd like to make
 full use of auto-vectorization and inlining when doing foreach loops,
 iterators with inline predicates, and array operations. Our problem with C
 on ARM is that many compilers are still far from good. We wouldn't want to
 buy a commercial compiler unless it's really worth its salt. Reading this
 newsgroup revealed that D uses some kind of thing called 'lowerings' for
 optimizing high level features. Does this avoid all these complex bugs?
 
 Another question is, does D have any tutorials for building stuff on ARM?
 Any Android/iOS bindings anywhere? Has anyone done any Android/iPhone
 development in D? Would you recommend D instead of C/C++ for these
 platforms? If not, how long will it take before D beats C/C++ on these
 platforms? How I see it is there's not much time left to earn big money on
 these. Some popular applications already become (adware) free because of
 piracy and competition.
gdc or LDC might be able to build for ARM. I don't know. But dmd is x86 only (with x86_64 on the way). So, at the moment, you're not going to be able to build for ARM using dmd. I suspect that gdc can do it, since it's using gcc for its backend, but I don't know. There's probably a good chance that dmd will support ARM _eventually_ - as long as there's sufficient demand for it - but I doubt that it will any time soon. I expect that there are too many other things that need to be done for it to be a high priority at the moment. - Jonathan M Davis
Thanks for the reply. In my opinion this is a huge shame. The x86 market is oversaturated with languages, but if you're doing something "exotic", there's only C/C++. Btw ARM isn't especially exotic. Most portable devices except laptops have used it for years. While there are many language platforms for of these are especially high level and performance oriented at the same time. = jim =
Jan 29 2011
parent reply jim_g <example example.org> writes:
jim_g Wrote:

 Jonathan M Davis Wrote:
 
 On Saturday 29 January 2011 21:45:33 jim_g wrote:
 Hello
 
 I'm currently doing business with 4 commercial applications on Android 2.1+
 and iPhone 3GS+. One of the current problems is that we're facing the
 limits of performance especially when developing Java which is interpreted
 on the oldest hardware. Thanks to reddit I read about D recently and it
 seems to hit the head of the nail squarely. I've used to think that more
 performance means less "power" in the language when thinking in ways of
 simplicity (easy to read), high level language features (nameless
 functions) and so on. BUT D has it all in a nice package and solves all
 these issues.
 
 My question is, how well does D support ARMv6 and ARMv7? I'd like to make
 full use of auto-vectorization and inlining when doing foreach loops,
 iterators with inline predicates, and array operations. Our problem with C
 on ARM is that many compilers are still far from good. We wouldn't want to
 buy a commercial compiler unless it's really worth its salt. Reading this
 newsgroup revealed that D uses some kind of thing called 'lowerings' for
 optimizing high level features. Does this avoid all these complex bugs?
 
 Another question is, does D have any tutorials for building stuff on ARM?
 Any Android/iOS bindings anywhere? Has anyone done any Android/iPhone
 development in D? Would you recommend D instead of C/C++ for these
 platforms? If not, how long will it take before D beats C/C++ on these
 platforms? How I see it is there's not much time left to earn big money on
 these. Some popular applications already become (adware) free because of
 piracy and competition.
gdc or LDC might be able to build for ARM. I don't know. But dmd is x86 only (with x86_64 on the way). So, at the moment, you're not going to be able to build for ARM using dmd. I suspect that gdc can do it, since it's using gcc for its backend, but I don't know. There's probably a good chance that dmd will support ARM _eventually_ - as long as there's sufficient demand for it - but I doubt that it will any time soon. I expect that there are too many other things that need to be done for it to be a high priority at the moment. - Jonathan M Davis
Thanks for the reply. In my opinion this is a huge shame. The x86 market is oversaturated with languages, but if you're doing something "exotic", there's only C/C++. Btw ARM isn't especially exotic. Most portable devices except laptops have used it for years. While there are many language platforms for of these are especially high level and performance oriented at the same time.
What I tried to say is, in my opinion, a language with only a half or a quarter of D's improvements over C++ would be more successful on smartphone/tablet platforms than yet another x86 oriented language, no matter how good. The killer feature is to be in the right place and the right time. = jim =
Jan 29 2011
parent reply Gary Whatmore <no spam.sp> writes:
jim_g Wrote:

 What I tried to say is, in my opinion, a language with only a half or a
quarter of D's improvements over C++ would be more successful on
smartphone/tablet platforms than yet another x86 oriented language, no matter
how good. The killer feature is to be in the right place and the right time.
That's clearly not true. D is a revolutionary new language. It's supposed to Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt). - G.W.
Jan 30 2011
next sibling parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half or a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language, no
 matter how good. The killer feature is to be in the right place and the
 right time.
That's clearly not true. D is a revolutionary new language. It's supposed C, and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D programs for smart phones, but the overall focus of D development has been on the language itself and the standard libraries, not on making it work on additional platforms. That's a backend issue. It will likely be addressed at some point, but it's not a priority. There's just too much else to do. Not to mention, until some of the D GUI toolkits - such as QtD - are more mature, I'm not sure how feasible it would be to create smart phone applications anyway. GUI development is not one of D's strong suits at this point. It's being addressed, but it takes time. - Jonathan M Davis
Jan 30 2011
next sibling parent reply Gary Whatmore <no spam.sp> writes:
Jonathan M Davis Wrote:

 On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half or a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language, no
 matter how good. The killer feature is to be in the right place and the
 right time.
That's clearly not true. D is a revolutionary new language. It's supposed C, and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D programs for smart phones, but the overall focus of D development has been on the language itself and the standard libraries, not on making it work on additional platforms. That's a backend issue. It will likely be addressed at some point, but it's not a priority. There's just too much else to do. Not to mention, until some of the D GUI toolkits - such as QtD - are more mature, I'm not sure how feasible it would be to create smart phone applications anyway. GUI development is not one of D's strong suits at this point. It's being addressed, but it takes time.
Another point worth noting is that these phones are really limited. It doesn't make sense to run a garbage collected D in them. Mine has 96x65 pixels according to Wikipedia. It likely has few kilobytes of RAM. A simple hello world wouldn't fit in the ram. Would be much better to replace Qt for desktop users with a GUI written in D. - G.W.
Jan 30 2011
next sibling parent Andrew Wiley <debio264 gmail.com> writes:
On Sun, Jan 30, 2011 at 2:30 AM, Gary Whatmore <no spam.sp> wrote:

 Jonathan M Davis Wrote:

 On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half or
a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language,
no
 matter how good. The killer feature is to be in the right place and
the
 right time.
That's clearly not true. D is a revolutionary new language. It's
supposed

Objective
 C, and Java. The scripting capabilities also make D a good competitor
for
 the notorious Python, leading to several orders of magnitude better
 performance than slow VM languages give. We have a Python fan
(bearphile)
 in this mailing list who has several times shown how D outperforms
Python
 (which probably is the fastest scripting language).

 D's main focus currently is 32-bit x86 servers and desktop
applications.
 This is where the big market has traditionally been. Not everyone has
 64-bit hardware and I have my doubts about the size of the smartphone
 markets. The modern iterators, streams, and XML processing in Phobos 2
 help in these a lot. D is also fully open source which means it's a
 perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D
programs for
 smart phones, but the overall focus of D development has been on the
language
 itself and the standard libraries, not on making it work on additional
 platforms. That's a backend issue. It will likely be addressed at some
point,
 but it's not a priority. There's just too much else to do.

 Not to mention, until some of the D GUI toolkits - such as QtD - are more
 mature, I'm not sure how feasible it would be to create smart phone
applications
 anyway. GUI development is not one of D's strong suits at this point.
It's being
 addressed, but it takes time.
Another point worth noting is that these phones are really limited. It doesn't make sense to run a garbage collected D in them. Mine has 96x65 pixels according to Wikipedia. It likely has few kilobytes of RAM. A simple hello world wouldn't fit in the ram. Would be much better to replace Qt for desktop users with a GUI written in D.
Firstly, this quote may interest you: "The Android operating system consists of 12 million lines of code<http://en.wikipedia.org/wiki/Source_lines_of_code> including 3 million lines of XML <http://en.wikipedia.org/wiki/Xml>, 2.8 million lines of C <http://en.wikipedia.org/wiki/C_(programming_language)>, 2.1 million lines of Java <http://en.wikipedia.org/wiki/Java_(programming_language)>, and 1.75 million lines of C++ <http://en.wikipedia.org/wiki/C%2B%2B>.[20]<http://en.wikipedia.org/wiki/Android_(operating_system)#cite_note-19> " Yes, all that is on every Android phone, and there's enough capacity to run pretty demanding applications on top of that. If Android can fit all of that and run a few Dalvik Java VMs on top of that, I'd say you don't need to worry so much about the phones being limited. Yes, you need to worry about executable size, but it's not nearly as impossible as you seem to think.
Jan 30 2011
prev sibling next sibling parent reply Daniel Gibson <metalcaedes gmail.com> writes:
Am 30.01.2011 09:30, schrieb Gary Whatmore:
 Jonathan M Davis Wrote:

 On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half or a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language, no
 matter how good. The killer feature is to be in the right place and the
 right time.
That's clearly not true. D is a revolutionary new language. It's supposed C, and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D programs for smart phones, but the overall focus of D development has been on the language itself and the standard libraries, not on making it work on additional platforms. That's a backend issue. It will likely be addressed at some point, but it's not a priority. There's just too much else to do. Not to mention, until some of the D GUI toolkits - such as QtD - are more mature, I'm not sure how feasible it would be to create smart phone applications anyway. GUI development is not one of D's strong suits at this point. It's being addressed, but it takes time.
Another point worth noting is that these phones are really limited. It doesn't make sense to run a garbage collected D in them. Mine has 96x65 pixels according to Wikipedia. It likely has few kilobytes of RAM. A simple hello world wouldn't fit in the ram. Would be much better to replace Qt for desktop users with a GUI written in D. - G.W.
Then it's not a smartphone, at least not a modern one. jim_g was talking about Android phones and iphones, which are pretty powerful and handle garbage collected languages just fine (android uses java..)
Jan 30 2011
parent Jacob Carlborg <doob me.com> writes:
On 2011-01-30 18:53, Daniel Gibson wrote:
 Am 30.01.2011 09:30, schrieb Gary Whatmore:
 Jonathan M Davis Wrote:

 On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half
 or a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language, no
 matter how good. The killer feature is to be in the right place and
 the
 right time.
That's clearly not true. D is a revolutionary new language. It's supposed Objective C, and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D programs for smart phones, but the overall focus of D development has been on the language itself and the standard libraries, not on making it work on additional platforms. That's a backend issue. It will likely be addressed at some point, but it's not a priority. There's just too much else to do. Not to mention, until some of the D GUI toolkits - such as QtD - are more mature, I'm not sure how feasible it would be to create smart phone applications anyway. GUI development is not one of D's strong suits at this point. It's being addressed, but it takes time.
Another point worth noting is that these phones are really limited. It doesn't make sense to run a garbage collected D in them. Mine has 96x65 pixels according to Wikipedia. It likely has few kilobytes of RAM. A simple hello world wouldn't fit in the ram. Would be much better to replace Qt for desktop users with a GUI written in D. - G.W.
Then it's not a smartphone, at least not a modern one. jim_g was talking about Android phones and iphones, which are pretty powerful and handle garbage collected languages just fine (android uses java..)
Objective-C on iOS doesn't use the GC. But I think Mono does. -- /Jacob Carlborg
Jan 31 2011
prev sibling parent "Nick Sabalausky" <a a.a> writes:
"Gary Whatmore" <no spam.sp> wrote in message 
news:ii37k2$2pr3$1 digitalmars.com...
 Jonathan M Davis Wrote:

 On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half or 
 a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language, 
 no
 matter how good. The killer feature is to be in the right place and 
 the
 right time.
That's clearly not true. D is a revolutionary new language. It's supposed Objective C, and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D programs for smart phones, but the overall focus of D development has been on the language itself and the standard libraries, not on making it work on additional platforms. That's a backend issue. It will likely be addressed at some point, but it's not a priority. There's just too much else to do. Not to mention, until some of the D GUI toolkits - such as QtD - are more mature, I'm not sure how feasible it would be to create smart phone applications anyway. GUI development is not one of D's strong suits at this point. It's being addressed, but it takes time.
Another point worth noting is that these phones are really limited. It doesn't make sense to run a garbage collected D in them. Mine has 96x65 pixels according to Wikipedia. It likely has few kilobytes of RAM. A simple hello world wouldn't fit in the ram. Would be much better to replace Qt for desktop users with a GUI written in D.
With the GC stripped out (and safety checks in place to prevent accidential GC allocation), D would make a far better alternative to C/C++ for small platforms that can't handle a GC.
Jan 30 2011
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2011-01-30 09:17, Jonathan M Davis wrote:
 On Sunday 30 January 2011 00:05:59 Gary Whatmore wrote:
 jim_g Wrote:
 What I tried to say is, in my opinion, a language with only a half or a
 quarter of D's improvements over C++ would be more successful on
 smartphone/tablet platforms than yet another x86 oriented language, no
 matter how good. The killer feature is to be in the right place and the
 right time.
That's clearly not true. D is a revolutionary new language. It's supposed C, and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
I do think that it would be a definite boon to be able to create D programs for smart phones, but the overall focus of D development has been on the language itself and the standard libraries, not on making it work on additional platforms. That's a backend issue. It will likely be addressed at some point, but it's not a priority. There's just too much else to do. Not to mention, until some of the D GUI toolkits - such as QtD - are more mature, I'm not sure how feasible it would be to create smart phone applications anyway. GUI development is not one of D's strong suits at this point. It's being addressed, but it takes time. - Jonathan M Davis
With modifications to dmd to allow binding to Objective-C libraries (currently in progress) and using gdc/ldc could probably allow to create iOS applications using XCode and Interface Builder. -- /Jacob Carlborg
Jan 30 2011
prev sibling next sibling parent Trass3r <un known.com> writes:
 how D outperforms Python (which probably is the fastest scripting  
 language).
Nope, http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=luajit&lang2=python3
 D is also fully open source which means it's a perfect replacement for  
 open source frameworks (Qt).
You compare a language with A GUI toolkit??
Jan 30 2011
prev sibling next sibling parent reply Michel Fortin <michel.fortin michelf.com> writes:
On 2011-01-30 03:05:59 -0500, Gary Whatmore <no spam.sp> said:

 D's main focus currently is 32-bit x86 servers and desktop 
 applications. This is where the big market has traditionally been. Not 
 everyone has 64-bit hardware and I have my doubts about the size of the 
 smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets, both very sensitive to power consumption issues. Dual-core ARM processors aren't targeted at smartphones, and many servers aren't that much concerned with binary compatibility with older software so it's easy to switch them. Without an ARM backend, we'll be left in the cold eventually. The only question in my mind is when. -- Michel Fortin michel.fortin michelf.com http://michelf.com/
Jan 30 2011
next sibling parent reply "Denis Koroskin" <2korden gmail.com> writes:
On Sun, 30 Jan 2011 15:29:54 +0300, Michel Fortin  
<michel.fortin michelf.com> wrote:

 On 2011-01-30 03:05:59 -0500, Gary Whatmore <no spam.sp> said:

 D's main focus currently is 32-bit x86 servers and desktop  
 applications. This is where the big market has traditionally been. Not  
 everyone has 64-bit hardware and I have my doubts about the size of the  
 smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets, both very sensitive to power consumption issues. Dual-core ARM processors aren't targeted at smartphones, and many servers aren't that much concerned with binary compatibility with older software so it's easy to switch them. Without an ARM backend, we'll be left in the cold eventually. The only question in my mind is when.
I can't help myself but mention Tablet PCs that are gaining momentum. Many of the newest tablets are going to use dual core ARMs (as announced in a recent Consumer Electronic Show 2011). Also Sony Computer Entertainment just announced their next handheld console (http://en.wikipedia.org/wiki/PlayStation_Portable_successor). It's based on quad core ARM Cortex-A9. That said I really hope D gets an ARM backend. While it isn't likely for a DMD to happen, it could for LDC.
Jan 30 2011
parent reply Trass3r <un known.com> writes:
 That said I really hope D gets an ARM backend. While it isn't likely for  
 a DMD to happen, it could for LDC.
As I said in my other answer to this topic GDC has already been compiled as an ARM cross-compiler.
Jan 30 2011
parent reply "Denis Koroskin" <2korden gmail.com> writes:
On Sun, 30 Jan 2011 16:23:21 +0300, Trass3r <un known.com> wrote:

 That said I really hope D gets an ARM backend. While it isn't likely  
 for a DMD to happen, it could for LDC.
As I said in my other answer to this topic GDC has already been compiled as an ARM cross-compiler.
Good to know, thanks!
Jan 30 2011
parent Andrew Wiley <debio264 gmail.com> writes:
On Sun, Jan 30, 2011 at 7:52 AM, Denis Koroskin <2korden gmail.com> wrote:

 On Sun, 30 Jan 2011 16:23:21 +0300, Trass3r <un known.com> wrote:

  That said I really hope D gets an ARM backend. While it isn't likely for a
 DMD to happen, it could for LDC.
As I said in my other answer to this topic GDC has already been compiled as an ARM cross-compiler.
Good to know, thanks!
I've also built a GDC ARM native compiler. Both builds were mainly blocked by this issue: https://bitbucket.org/goshawk/gdc/issue/120/gc-enters-an-infinite-loop-on-arm So for now, GDC does seem to work on ARM, but if optimizations are enabled when building druntime, the GC breaks. If optimizations aren't enabled, everything seems to work, but hasn't really been tested. Actually, I should try running the Phobos/Druntime test suite on ARM. Should be fun.
Jan 30 2011
prev sibling parent reply Daniel Gibson <metalcaedes gmail.com> writes:
Am 30.01.2011 13:29, schrieb Michel Fortin:
 On 2011-01-30 03:05:59 -0500, Gary Whatmore <no spam.sp> said:

 D's main focus currently is 32-bit x86 servers and desktop
 applications. This is where the big market has traditionally been. Not
 everyone has 64-bit hardware and I have my doubts about the size of
 the smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets,
I'm not sure about these markets, because ARM is stuck to 32bit, 64bit ARM seems to be (almost?) impossible as far as I know. Nevertheless, ARM is pretty important and being able to use D on ARM devices would be great. Seeing how long it takes to port DMD to x86_64 I think there won't be a port to ARM in the foreseeable future. Fixing GDC to have proper ARM support seems doable, though. Cheers, - Daniel
Jan 30 2011
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
== Quote from Daniel Gibson (metalcaedes gmail.com)'s article
 Am 30.01.2011 13:29, schrieb Michel Fortin:
 On 2011-01-30 03:05:59 -0500, Gary Whatmore <no spam.sp> said:

 D's main focus currently is 32-bit x86 servers and desktop
 applications. This is where the big market has traditionally been. Not
 everyone has 64-bit hardware and I have my doubts about the size of
 the smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets,
I'm not sure about these markets, because ARM is stuck to 32bit, 64bit ARM seems to be (almost?) impossible as far as I know. Nevertheless, ARM is pretty important and being able to use D on ARM devices would be great. Seeing how long it takes to port DMD to x86_64 I think there won't be a port to ARM in the foreseeable future. Fixing GDC to have proper ARM support seems doable, though. Cheers, - Daniel
As far as I'm aware, it's fixing Druntime to have proper ARM support that is the first hurdle. Though time will tell just exactly what in heavens is going wrong in the GC. :) Regards Iain
Jan 30 2011
prev sibling parent reply retard <re tard.com.invalid> writes:
Sun, 30 Jan 2011 19:36:44 +0100, Daniel Gibson wrote:

 Am 30.01.2011 13:29, schrieb Michel Fortin:
 On 2011-01-30 03:05:59 -0500, Gary Whatmore <no spam.sp> said:

 D's main focus currently is 32-bit x86 servers and desktop
 applications. This is where the big market has traditionally been. Not
 everyone has 64-bit hardware and I have my doubts about the size of
 the smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets,
I'm not sure about these markets, because ARM is stuck to 32bit, 64bit ARM seems to be (almost?) impossible as far as I know.
It will take years before the 64-bit address space starts to make sense in portable systems. While workstations for developers have bigger and completely different requirements, in general the most demanding applications for ordinary sixpack-joe are hd-video transcoding (which actually isn't memory intensive), image manipulation (this year's basic $100 models already sport a sensor of 14 megapixels => 45 MB per image layer), and surprisingly web browsing. The ARM equipment support this by providing powerful co-processors and having a tiny (Thumb) instruction set. It's really hard to see where they would need more than 4 GB of RAM.. even according to Moore's law it will take at least 6 years for the top of the line products to use this much memory.
Jan 31 2011
next sibling parent reply dennis luehring <dl.soluz gmx.net> writes:
 While workstations for developers have bigger and completely different
 requirements, in general the most demanding applications for ordinary
 sixpack-joe are hd-video transcoding (which actually isn't memory
 intensive), image manipulation (this year's basic $100 models already
 sport a sensor of 14 megapixels =>  45 MB per image layer), and
 surprisingly web browsing.

 The ARM equipment support this by providing powerful co-processors and
 having a tiny (Thumb) instruction set. It's really hard to see where they
 would need more than 4 GB of RAM.. even according to Moore's law it will
 take at least 6 years for the top of the line products to use this much
 memory.
but they work on 64bit: http://www.computerworld.com/s/article/9197298/Arm_readies_processing_cores_for_64_bit_computing
Jan 31 2011
next sibling parent reply retard <re tard.com.invalid> writes:
Mon, 31 Jan 2011 12:04:11 +0100, dennis luehring wrote:

 While workstations for developers have bigger and completely different
 requirements, in general the most demanding applications for ordinary
 sixpack-joe are hd-video transcoding (which actually isn't memory
 intensive), image manipulation (this year's basic $100 models already
 sport a sensor of 14 megapixels =>  45 MB per image layer), and
 surprisingly web browsing.

 The ARM equipment support this by providing powerful co-processors and
 having a tiny (Thumb) instruction set. It's really hard to see where
 they would need more than 4 GB of RAM.. even according to Moore's law
 it will take at least 6 years for the top of the line products to use
 this much memory.
but they work on 64bit: http://www.computerworld.com/s/article/9197298/
Arm_readies_processing_cores_for_64_bit_computing What this means is that the same add/sub/mul/div calculator program which previously needed 2000 bytes of RAM on my grandfather's PDA soon uses 500 GB.
Jan 31 2011
parent dennis luehring <dl.soluz gmx.net> writes:
Am 31.01.2011 12:15, schrieb retard:
 Mon, 31 Jan 2011 12:04:11 +0100, dennis luehring wrote:

  While workstations for developers have bigger and completely different
  requirements, in general the most demanding applications for ordinary
  sixpack-joe are hd-video transcoding (which actually isn't memory
  intensive), image manipulation (this year's basic $100 models already
  sport a sensor of 14 megapixels =>   45 MB per image layer), and
  surprisingly web browsing.

  The ARM equipment support this by providing powerful co-processors and
  having a tiny (Thumb) instruction set. It's really hard to see where
  they would need more than 4 GB of RAM.. even according to Moore's law
  it will take at least 6 years for the top of the line products to use
  this much memory.
but they work on 64bit: http://www.computerworld.com/s/article/9197298/
Arm_readies_processing_cores_for_64_bit_computing What this means is that the same add/sub/mul/div calculator program which previously needed 2000 bytes of RAM on my grandfather's PDA soon uses 500 GB.
there are so many different ARM Architectures out there that i don't thing that someone will put an comming 64bit variant into an PDA... no one needs to be afraid here
Jan 31 2011
prev sibling parent reply Daniel Gibson <metalcaedes gmail.com> writes:
Am 31.01.2011 12:04, schrieb dennis luehring:
 While workstations for developers have bigger and completely different
 requirements, in general the most demanding applications for ordinary
 sixpack-joe are hd-video transcoding (which actually isn't memory
 intensive), image manipulation (this year's basic $100 models already
 sport a sensor of 14 megapixels => 45 MB per image layer), and
 surprisingly web browsing.

 The ARM equipment support this by providing powerful co-processors and
 having a tiny (Thumb) instruction set. It's really hard to see where they
 would need more than 4 GB of RAM.. even according to Moore's law it will
 take at least 6 years for the top of the line products to use this much
 memory.
but they work on 64bit: http://www.computerworld.com/s/article/9197298/Arm_readies_processing_cores_for_64_bit_computing
Hmm I didn't know about that. I thought I read some months ago that porting ARM to 64bit is almost impossible. As a side note, a comment on the article: "However, it's easy to imagine a service such as Amazon's EC2 offering virtualized Linux instances without the user being aware that it's an ARM setup, and these could be cheaper than equivalent x86 instances (perhaps even making for a "budget EC2" service)." This is BS, because the user is *directly* using EC2 VMs (can use his own binaries etc), so he *will* care if it runs x86 or ARM. And I don't think anyone would want to emulate x86 on ARM... Cheers, - Daniel
Jan 31 2011
parent reply Daniel Gibson <metalcaedes gmail.com> writes:
Am 31.01.2011 12:57, schrieb Daniel Gibson:
 Am 31.01.2011 12:04, schrieb dennis luehring:
 While workstations for developers have bigger and completely different
 requirements, in general the most demanding applications for ordinary
 sixpack-joe are hd-video transcoding (which actually isn't memory
 intensive), image manipulation (this year's basic $100 models already
 sport a sensor of 14 megapixels => 45 MB per image layer), and
 surprisingly web browsing.

 The ARM equipment support this by providing powerful co-processors and
 having a tiny (Thumb) instruction set. It's really hard to see where they
 would need more than 4 GB of RAM.. even according to Moore's law it will
 take at least 6 years for the top of the line products to use this much
 memory.
but they work on 64bit: http://www.computerworld.com/s/article/9197298/Arm_readies_processing_cores_for_64_bit_computing
Hmm I didn't know about that. I thought I read some months ago that porting ARM to 64bit is almost impossible. As a side note, a comment on the article: "However, it's easy to imagine a service such as Amazon's EC2 offering virtualized Linux instances without the user being aware that it's an ARM setup, and these could be cheaper than equivalent x86 instances (perhaps even making for a "budget EC2" service)." This is BS, because the user is *directly* using EC2 VMs (can use his own binaries etc), so he *will* care if it runs x86 or ARM. And I don't think anyone would want to emulate x86 on ARM... Cheers, - Daniel
http://www.thinq.co.uk/2011/2/7/arms-east-denies-64-bit-chip-plans/
Feb 07 2011
parent "Nick Sabalausky" <a a.a> writes:
"Daniel Gibson" <metalcaedes gmail.com> wrote in message 
news:iipq7m$8c0$1 digitalmars.com...
 Am 31.01.2011 12:57, schrieb Daniel Gibson:
 Am 31.01.2011 12:04, schrieb dennis luehring:
 While workstations for developers have bigger and completely different
 requirements, in general the most demanding applications for ordinary
 sixpack-joe are hd-video transcoding (which actually isn't memory
 intensive), image manipulation (this year's basic $100 models already
 sport a sensor of 14 megapixels => 45 MB per image layer), and
 surprisingly web browsing.

 The ARM equipment support this by providing powerful co-processors and
 having a tiny (Thumb) instruction set. It's really hard to see where 
 they
 would need more than 4 GB of RAM.. even according to Moore's law it 
 will
 take at least 6 years for the top of the line products to use this much
 memory.
but they work on 64bit: http://www.computerworld.com/s/article/9197298/Arm_readies_processing_cores_for_64_bit_computing
Hmm I didn't know about that. I thought I read some months ago that porting ARM to 64bit is almost impossible. As a side note, a comment on the article: "However, it's easy to imagine a service such as Amazon's EC2 offering virtualized Linux instances without the user being aware that it's an ARM setup, and these could be cheaper than equivalent x86 instances (perhaps even making for a "budget EC2" service)." This is BS, because the user is *directly* using EC2 VMs (can use his own binaries etc), so he *will* care if it runs x86 or ARM. And I don't think anyone would want to emulate x86 on ARM... Cheers, - Daniel
http://www.thinq.co.uk/2011/2/7/arms-east-denies-64-bit-chip-plans/
OTOH, you can never trust anything a corporation says. Hell, Nintendo once famously stated flat out that they had no plans for a new DS model...and then announced the "DS Lite" the following day. Whether because of deliberate lie or just one hand not having the slightest clue what the other is doing, the word of a corporation can always be considered worthless.
Feb 09 2011
prev sibling parent reply Daniel Gibson <metalcaedes gmail.com> writes:
Am 31.01.2011 11:52, schrieb retard:
 Sun, 30 Jan 2011 19:36:44 +0100, Daniel Gibson wrote:

 Am 30.01.2011 13:29, schrieb Michel Fortin:
 On 2011-01-30 03:05:59 -0500, Gary Whatmore<no spam.sp>  said:

 D's main focus currently is 32-bit x86 servers and desktop
 applications. This is where the big market has traditionally been. Not
 everyone has 64-bit hardware and I have my doubts about the size of
 the smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets,
I'm not sure about these markets, because ARM is stuck to 32bit, 64bit ARM seems to be (almost?) impossible as far as I know.
It will take years before the 64-bit address space starts to make sense in portable systems.
Again: "ARM processors will soon start to enter other markets, mainly the *server* and laptop markets," So while you /may/ be true about laptops, servers definitely can use more than 4GB of RAM.
Jan 31 2011
parent Andrew Wiley <debio264 gmail.com> writes:
On Mon, Jan 31, 2011 at 5:51 AM, Daniel Gibson <metalcaedes gmail.com>wrote:

 Am 31.01.2011 11:52, schrieb retard:

  Sun, 30 Jan 2011 19:36:44 +0100, Daniel Gibson wrote:
  Am 30.01.2011 13:29, schrieb Michel Fortin:
 On 2011-01-30 03:05:59 -0500, Gary Whatmore<no spam.sp>  said:

  D's main focus currently is 32-bit x86 servers and desktop
 applications. This is where the big market has traditionally been. Not
 everyone has 64-bit hardware and I have my doubts about the size of
 the smartphone markets.
I think the important point here is ARM, not smartphones. ARM processors will soon start to enter other markets, mainly the server and laptop markets,
I'm not sure about these markets, because ARM is stuck to 32bit, 64bit ARM seems to be (almost?) impossible as far as I know.
It will take years before the 64-bit address space starts to make sense in portable systems.
Again: "ARM processors will soon start to enter other markets, mainly the *server* and laptop markets," So while you /may/ be true about laptops, servers definitely can use more than 4GB of RAM.
They already have address extension technologies in place to allow up to 1TB of RAM with certain CPUs. It's not 64 bit, but it does fix the memory problem.
Jan 31 2011
prev sibling parent Andrew Wiley <debio264 gmail.com> writes:
On Sun, Jan 30, 2011 at 2:05 AM, Gary Whatmore <no spam.sp> wrote:

 jim_g Wrote:

 What I tried to say is, in my opinion, a language with only a half or a
quarter of D's improvements over C++ would be more successful on smartphone/tablet platforms than yet another x86 oriented language, no matter how good. The killer feature is to be in the right place and the right time. That's clearly not true. D is a revolutionary new language. It's supposed and Java. The scripting capabilities also make D a good competitor for the notorious Python, leading to several orders of magnitude better performance than slow VM languages give. We have a Python fan (bearphile) in this mailing list who has several times shown how D outperforms Python (which probably is the fastest scripting language). D's main focus currently is 32-bit x86 servers and desktop applications. This is where the big market has traditionally been. Not everyone has 64-bit hardware and I have my doubts about the size of the smartphone markets. The modern iterators, streams, and XML processing in Phobos 2 help in these a lot. D is also fully open source which means it's a perfect replacement for open source frameworks (Qt).
The trick is that in the smartphone market, once you get a SDK working in a certain language, you're done. There simply aren't the legacy issues you see with other applications. Look at the iPhone. Nobody really cared about Objective C (unless they were Mac application developers, but that was mainly a niche market) until iPhone mobile applications came around and made it important. Android did something similar because JavaME never really took off, and suddenly mobile Java was important. That's not a new language, but it's a market that never really existed before, and Android pushed Java into it by developing the Dalvik JVM and a reasonable SDK and pushing them both to developers. There was a Java SDK, so everyone started using Java.
Jan 30 2011
prev sibling parent Matthias Pleh <sufu alter.com> writes:
Am 30.01.2011 06:50, schrieb Jonathan M Davis:
 I suspect that gdc can do it, since it's using gcc for
 its backend, but I don't know.
There is already someone who has tried to build an arm-crosscompiler with gdc! See last post 'Building an ARM cross compiler' on the D.gnu maillinglist Matthias
Jan 30 2011
prev sibling parent reply Trass3r <un known.com> writes:
 I'm currently doing business with 4 commercial applications on Android  
 2.1+ and iPhone 3GS+.
It's funny, I thought about the usage of D for smart phones just the other day.
 My question is, how well does D support ARMv6 and ARMv7?
Johannes Pfau recently managed to build gdc as an ARM cross-compiler, see the D.gnu newsgroup. So it IS possible to compile ARM code with D but since this hasn't really been used by anyone so far, you're on an unpaved road.
 Reading this newsgroup revealed that D uses some kind of thing called  
 'lowerings' for optimizing high level features.
Haven't heard of that.
 Has anyone done any Android/iPhone development in D?
 how long will it take before D beats C/C++ on these platforms?
It's a matter of how many people use it.
 How I see it is there's not much time left to earn big money on these.  
 Some popular applications already become (adware) free because of piracy  
 and competition.
Very true.
Jan 30 2011
parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Sunday 30 January 2011 04:02:14 Trass3r wrote:
 Reading this newsgroup revealed that D uses some kind of thing called
 'lowerings' for optimizing high level features.
Haven't heard of that.
Examples would be how date += duration; becomes date.opOpAssign!"+="(duration); or how { //... code1 scope(exit) { /* code2 */} //... code2 } becomes something along the lines { //... code1 try { //... code3 } finally { /* code2 */ } } Some of the newer features are "lowered" into more code using more basic features. This makes them much easier to implement. Andrei discusses it a bit in TDPL. I'm not sure that it really helps optimize anything though. It just makes it easier to implement new features by defining them in terms of older, more basic, already implemented features. - Jonathan M Davis
Jan 30 2011
parent Trass3r <un known.com> writes:
 Examples would be how

 date += duration;

 becomes

 date.opOpAssign!"+="(duration);
Ah got it.
 I'm not sure that it really helps optimize anything though. It just makes
 it easier to implement new features by defining them in terms of older,  
 more basic, already implemented features.
Yep, more like syntactic sugar.
Jan 30 2011