www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D has 22 place at the Tiobe index

reply "ilya-stromberg" <ilya-stromberg-2009 yandex.ru> writes:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

It will be great if D returns back to the top 20.

D community, thank you for your great work!
Dec 25 2013
parent reply "Maxim Fomin" <maxim maxim-fomin.ru> writes:
On Wednesday, 25 December 2013 at 09:32:39 UTC, ilya-stromberg 
wrote:
 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

 It will be great if D returns back to the top 20.
Whether it measures popularity in a right way is a debatable issue, but I want to note, that in recent month (approximatly from september 2013) the way popularity is calculated was changed several times (by including/excluding search engines and adjusting for search lookups), so some language shows unexpected shifts in their positions. This destroys the usefulness of looking at the dynamics, let alone questioning validity in a first place. Still, if one is interested in long history: 2012.04 0,328% 2012.05 0,327% 2012.06 0,339% 2012.07 0,336% 2012.08 0,332% 2012.09 0,311% <= in top 2012.10 0,284% 2012.11 0,283% 2012.12 0,281% 2013.01 0,296% 2013.02 0,297% 2013.03 0,345% 2013.04 0,314% 2013.05 0,301% 2013.06 0,474% 2013.07 0,364% 2013.08 0,567% <= 1 change in calculations 2013.09 0,331% <= 2 change in calculations 2013.10 0,337% 2013.11 0,392% 2013.12 0,552% <= 3 change in calculations From this it can be said that D was moving downwards since Fall 2012 to summer 2013 and now tiobe cheats index and it is not clear whether it will push D up or down. Judging by changes in methodology the increase is likely to be preserved and you can speculate further that this month value underestimates growth. Apart from TIOBE there is other index (actually many): - http://lang-index.sourceforge.net/ Here D is down from ~13 to 21 place. It is also down in its own category (general purpose). I don't have long history here. What is not taken into account when interpreting indexes is reflexivity: if lang is down, so nobody interested in, so lang is going even deeper down (and vice versa). I would suggest to look at usage indexes rather than at popularity ones.
 D community, thank you for your great work!
I would say it mostly due to limited number of people working in dmd/druntime/phobos (names can be obtained from git log) rather than to community which generates talks in newsgroups and unimplemented DIPs.
Dec 25 2013
parent reply "Joakim" <joakim airpost.net> writes:
On Wednesday, 25 December 2013 at 10:20:13 UTC, Maxim Fomin wrote:
 On Wednesday, 25 December 2013 at 09:32:39 UTC, ilya-stromberg 
 wrote:
 D community, thank you for your great work!
I would say it mostly due to limited number of people working in dmd/druntime/phobos (names can be obtained from git log) rather than to community which generates talks in newsgroups and unimplemented DIPs.
Surely not everyone can contribute to the core tools, but the community can put out good D libraries/apps or evangelize D in their circles. What D needs is a killer app, something that can really showcase its abilities. Obj-C went from obscurity to top 4 in TIOBE by riding the popularity of iOS. Ruby was nowhere before rails. I'm sure Android has buoyed Java in recent years. Frankly, I'm surprised D hasn't produced a killer app/project yet, but then to really show D off would take a pretty ambitious project, probably something at least moderately mathematical or scientific to showcase its strengths. Or perhaps an existing popular and efficient tool re-implemented in D and done better with its modeling power, say git or some better DVCS implemented in D. AFAICT, Vibe.d would be my nominee right now. As far as I'm concerned, Walter and the other core contributors have done their part: D is a great tool to use. I know there are complaints about regressions and other bugs, especially from you, but ruby was likely much worse and that didn't stop rails from taking off, just ask Zed Shaw. ;) I look forward to the killer app the D community comes up with. :)
Dec 25 2013
parent reply "Rikki Cattermole" <alphaglosined gmail.com> writes:
I've actually been thinking about D's future and what its killer 
applications could very well be.


I actually don't believe in gui apps is D's strong point. Even if 
we get a gui lib sorted out. The only exception I see for this is 
an IDE which supports a good few languages, Java, c/c++, asm, 
lua, python, D. Just to name a few. Probably R as well.
Maybe little console utility apps would do well. Phobos has a wee 
way to go before that is doable in most cases.
Game development definitely. But for that we need somebody to 
actually build a pretty good game engine and then show it off 
using a game.
Server infrastructure. Well thats been proven already. Thank you 
Sociomantic.

Lastly web development. This I believe to be our biggest chance. 
With Java going down hill we can take over a lot of development 
that would have gone into JSP apps.
We actually have a good language for it. Which I was very unsure 
about when I started using it for that.
There is three different times in a D app that you can do init 
and overhead stuff. Compile time, start of runtime and during 
runtime (aka when you need it). PHP only has during runtime (more 
of less when you need it). Java has on init (so start) and when 
you need it.
This is an absolutely amazing thing that I can't stress enough to 
being great for web development. Huge amount of processing can be 
taken out of a website during runtime.
There is a big down side to this though. It takes longer to do 
something like an ORM. Just basic mapping takes longer. As we 
have so much more to take in.


I think web development is where our biggest potential is for. 
Not actually scientific or mathematical in nature.
Because of this, part of my design with DOOGLE is to make the 
abstraction in such a way that it should be possible to build 
almost identical (in code) desktop and web apps. If we had this 
alone, things like IDE's would become very attractive to dev's. 
Write one interface in code and have it usable in whole bunch of 
mediums.

Because of the web development nature, there is one specific 
project I believe to be key to show this off. A CMS. But to do 
this effectively we need things like a good router, ORM and all 
that type of thing. Not to mention lack of sql based database 
support in vibe currently.
Dec 25 2013
next sibling parent reply "Joakim" <joakim airpost.net> writes:
On Thursday, 26 December 2013 at 01:02:40 UTC, Rikki Cattermole 
wrote:
 I've actually been thinking about D's future and what its 
 killer applications could very well be.


 I actually don't believe in gui apps is D's strong point. Even 
 if we get a gui lib sorted out. The only exception I see for 
 this is an IDE which supports a good few languages, Java, 
 c/c++, asm, lua, python, D. Just to name a few. Probably R as 
 well.
Yeah, D doesn't seem to have any great success stories on the GUI front, though there have been some apps.
 Maybe little console utility apps would do well. Phobos has a 
 wee way to go before that is doable in most cases.
Perhaps a port of busybox or Android's toolbox utilities to D would be a good demo: https://android.googlesource.com/platform/system/core/+/master/toolbox/
 Game development definitely. But for that we need somebody to 
 actually build a pretty good game engine and then show it off 
 using a game.
Benjamin Thaut wrote a nice game demo, there may be more out there: http://3d.benjamin-thaut.de/?p=20
 I think web development is where our biggest potential is for. 
 Not actually scientific or mathematical in nature.
 Because of this, part of my design with DOOGLE is to make the 
 abstraction in such a way that it should be possible to build 
 almost identical (in code) desktop and web apps. If we had this 
 alone, things like IDE's would become very attractive to dev's. 
 Write one interface in code and have it usable in whole bunch 
 of mediums.

 Because of the web development nature, there is one specific 
 project I believe to be key to show this off. A CMS. But to do 
 this effectively we need things like a good router, ORM and all 
 that type of thing. Not to mention lack of sql based database 
 support in vibe currently.
The problem with web devs is that D is too heavy for them. This is why most of them use php, maybe ruby or java, and not C++. I think D doing well in web dev is a lost cause, better to focus on native GUI apps, especially on mobile. Vibe.d is a great project, but I don't see it ever catching on in the wider web dev community. The great thing about D is that it would be a good base for creating completely new tools and technologies. That is why it is tough to imagine what will bubble up, as it will be up to the imagination of the D programmer. However, getting D going on mobile might be important, as that seems to be where all the creativity is these days. Paul Thurrott keeps pointing out that the top two installed Windows apps are Chrome and iTunes, both of which exist to take users away from Windows to other platforms: http://windowsitpro.com/windows-8/windows-desktop-death The rest of the top 10 are all "system utilities that include antivirus/malware applications and those silly little tools that make Windows 8 look and work more like Windows 7." If desktop computers and Windows are dying and mobile is the future, D needs to be on mobile, especially since D will be more efficient and better-suited to mobile constraints.
Dec 25 2013
next sibling parent reply "Rikki Cattermole" <alphaglosined gmail.com> writes:
 Game development definitely. But for that we need somebody to 
 actually build a pretty good game engine and then show it off 
 using a game.
Benjamin Thaut wrote a nice game demo, there may be more out there: http://3d.benjamin-thaut.de/?p=20
Not quite enough to show this off though.
 I think web development is where our biggest potential is for. 
 Not actually scientific or mathematical in nature.
 Because of this, part of my design with DOOGLE is to make the 
 abstraction in such a way that it should be possible to build 
 almost identical (in code) desktop and web apps. If we had 
 this alone, things like IDE's would become very attractive to 
 dev's. Write one interface in code and have it usable in whole 
 bunch of mediums.

 Because of the web development nature, there is one specific 
 project I believe to be key to show this off. A CMS. But to do 
 this effectively we need things like a good router, ORM and 
 all that type of thing. Not to mention lack of sql based 
 database support in vibe currently.
The problem with web devs is that D is too heavy for them. This is why most of them use php, maybe ruby or java, and not C++. I think D doing well in web dev is a lost cause, better to focus on native GUI apps, especially on mobile. Vibe.d is a great project, but I don't see it ever catching on in the wider web dev community. The great thing about D is that it would be a good base for creating completely new tools and technologies. That is why it is tough to imagine what will bubble up, as it will be up to the imagination of the D programmer. However, getting D going on mobile might be important, as that seems to be where all the creativity is these days. Paul Thurrott keeps pointing out that the top two installed Windows apps are Chrome and iTunes, both of which exist to take users away from Windows to other platforms: http://windowsitpro.com/windows-8/windows-desktop-death The rest of the top 10 are all "system utilities that include antivirus/malware applications and those silly little tools that make Windows 8 look and work more like Windows 7." If desktop computers and Windows are dying and mobile is the future, D needs to be on mobile, especially since D will be more efficient and better-suited to mobile constraints.
I disagree with D not having a good chance at web development. PHP is a good language for small to medium sites that need to be done quickly. But if you need to scale or do anything complex its really not a good solution. This is the market I believe D does have a chance with especially with Java decline from grace. As you said about mobile, sure but that would limit to basically windows mobile. Once we have ARM support. Android has issues as a lot of api is in Java not native. So wrapping with JNI would be required which would be bad. With iOS would need extern Objective-C support and to get toolchain approved by Apple, which I don't see happening anytime soon. Even if we do disclude app side of things, mobile apps quite often have a web service component as well. But thats web development essentially. I'm not expecting D to be bigger than e.g. PHP for example but we definitely can be a good alternative.
Dec 25 2013
next sibling parent "Adam Wilson" <flyboynw gmail.com> writes:
Guys, lets not waste too much energy debating what the killer-app for D  
may or may not end up being. We have no idea what it will be or when it  
will happen. Let's just focus on building a high-quality language and  
tool-chain so that someone can build said killer-app.

-- 
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/
Dec 25 2013
prev sibling parent "Joakim" <joakim airpost.net> writes:
On Thursday, 26 December 2013 at 05:55:08 UTC, Rikki Cattermole 
wrote:
 I disagree with D not having a good chance at web development. 
 PHP is a good language for small to medium sites that need to 
 be done quickly. But if you need to scale or do anything 
 complex its really not a good solution. This is the market I 
 believe D does have a chance with especially with Java decline 
 from grace.
If everybody needed to scale or do something complex, why would php still be so popular? Most sites aren't facebook, turning their php into C++ over time. ;) I agree that D could have a niche on the performant side of web dev, taking over for Java a bit, but that's not a huge piece of the market.
 As you said about mobile, sure but that would limit to 
 basically windows mobile. Once we have ARM support. Android has 
 issues as a lot of api is in Java not native. So wrapping with 
 JNI would be required which would be bad. With iOS would need 
 extern Objective-C support and to get toolchain approved by 
 Apple, which I don't see happening anytime soon.
I wonder how hard it is to integrate non-Microsoft languages with WinRT and Metro. Android has a lot of native support these days- you can build completely native apks if you want- but yeah, JNI is necessary for some APIs. I don't see why that's "bad," just the price of being on Android, as you're going to need to integrate with the platform APIs everywhere. Does iOS really require Apple to bless your toolchain? Free Pascal has iOS support and I doubt Apple ever approved them. The iOS developer agreement says you can't use interpreted code, which they put in there to block Flash, but I don't think they require approval of your toolchain if it's producing native binaries. I'd never develop for iOS though, so I don't know for sure.
 Even if we do disclude app side of things, mobile apps quite 
 often have a web service component as well. But thats web 
 development essentially.
Not really. Just because you're using HTTP for transport, to avoid firewalls or whatever, doesn't make it "web development." In fact, mobile is leading to a lot of innovation in networking protocols, so web services are not necessary: https://www.belshe.com/2013/01/31/custom-protocols-everywhere/ On Thursday, 26 December 2013 at 07:29:28 UTC, Adam Wilson wrote:
 Guys, lets not waste too much energy debating what the 
 killer-app for D may or may not end up being. We have no idea 
 what it will be or when it will happen. Let's just focus on 
 building a high-quality language and tool-chain so that someone 
 can build said killer-app.
Just spitballing. :) Who knows? Maybe somebody will take an idea from this thread and run with it. On Thursday, 26 December 2013 at 09:03:30 UTC, John Colvin wrote:
 On Thursday, 26 December 2013 at 03:34:55 UTC, Joakim wrote:
 The problem with web devs is that D is too heavy for them.  
 This is why most of them use php, maybe ruby or java, and not 
 C++.  I think D doing well in web dev is a lost cause, better 
 to focus on native GUI apps, especially on mobile.  Vibe.d is 
 a great project, but I don't see it ever catching on in the 
 wider web dev community.
Too heavy for some casual developers perhaps, but the speed advantage of D might be worth it for those who have higher server loads to contend with.
In that case, why aren't they using C++ already? If the argument is that D is as performant as C++ but as easy to use as ruby, so it will crack that niche, I think D is far from being that easy. For example, how many java or ruby programmers, forget about php, ;) think about static vs dynamic arrays? That leads to questions like this one: http://stackoverflow.com/questions/9245539/what-is-the-point-of-having-static-arrays These kinds of issues leak out in D all over the place and represent a barrier for the average web dev. Don't get me wrong, I think D does a remarkable job of smoothing the rough edges of C/C++. I just don't think D will ever be suited for most of that web dev niche and that's fine. The high-end, performant sites who might resort to C++ normally can still use D, and the more numerous, smaller webapps can use the scripting framework du jour, whether rails or node.
Dec 26 2013
prev sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Thursday, 26 December 2013 at 03:34:55 UTC, Joakim wrote:
 The problem with web devs is that D is too heavy for them.  
 This is why most of them use php, maybe ruby or java, and not 
 C++.  I think D doing well in web dev is a lost cause, better 
 to focus on native GUI apps, especially on mobile.  Vibe.d is a 
 great project, but I don't see it ever catching on in the wider 
 web dev community.
Too heavy for some casual developers perhaps, but the speed advantage of D might be worth it for those who have higher server loads to contend with.
Dec 26 2013
prev sibling parent reply Etienne <etcimon globecsys.com> writes:
On 2013-12-25 8:01 PM, Rikki Cattermole wrote:
 I think web development is where our biggest potential is for. Not
 actually scientific or mathematical in nature.
 Because of this, part of my design with DOOGLE is to make the
 abstraction in such a way that it should be possible to build almost
 identical (in code) desktop and web apps. If we had this alone, things
 like IDE's would become very attractive to dev's. Write one interface in
 code and have it usable in whole bunch of mediums.

 Because of the web development nature, there is one specific project I
 believe to be key to show this off. A CMS. But to do this effectively we
 need things like a good router, ORM and all that type of thing. Not to
 mention lack of sql based database support in vibe currently.
I'm working on a Framework/CMS where all controllers are in oData so you can create desktop/mobile applications in e.g. OpenUI5 - this allows compiling the D Language into a Desktop/Mobile application with Javascript UI with under 4 mb. Every library e.g. Users (core) would be in oData, with the ability to add fields and relations when loading your own library with a consistent db e.g. sqlite/mongodb. There would be oData connectors for each db. All libraries simply add up to create the final application with a unified database/oData object per domain services. You could call the oData remotely, but you can also issue calls internally to the host-local services to build a HTML frontend in vibe.d with oData controller. There's tons of things I'm planning for this framework. It's going to be a little like a kernel with hooks & event handlers, but with the settings in Lua pre-runtime. API is being developed here: https://github.com/GlobecSys/w3Vibe I'm looking forward to some comments, I'm only going to plan the structure for a few more days
Jan 06 2014
parent reply "Rikki Cattermole" <alphaglosined gmail.com> writes:
On Monday, 6 January 2014 at 17:38:25 UTC, Etienne wrote:
 I'm working on a Framework/CMS where all controllers are in 
 oData so you can create desktop/mobile applications in e.g. 
 OpenUI5 - this allows compiling the D Language into a 
 Desktop/Mobile application with Javascript UI with under 4 mb.

 Every library e.g. Users (core) would be in oData, with the 
 ability to add fields and relations when loading your own 
 library with a consistent db e.g. sqlite/mongodb. There would 
 be oData connectors for each db. All libraries simply add up to 
 create the final application with a unified database/oData 
 object per domain services. You could call the oData remotely, 
 but you can also issue calls internally to the host-local 
 services to build a HTML frontend in vibe.d with oData 
 controller.

 There's tons of things I'm planning for this framework. It's 
 going to be a little like a kernel with hooks & event handlers, 
 but with the settings in Lua pre-runtime. API is being 
 developed here: https://github.com/GlobecSys/w3Vibe

 I'm looking forward to some comments, I'm only going to plan 
 the structure for a few more days
Since I wrote my original post, I have built an ORM[0] and have done quite a bit of work on my own web service framework. Not currently up on a repo, but its nearing ready for it. By default it configures data models thanks to Dvorm, routes, has update functionality (every hour or five minutes depending on the task), cache manager to keeping a set data model in memory at all times. I am planning on getting it up to a point where it works as a CMS out of the box but also as a flexible component library. I actually like the look of odata and I may at some point implement a template mixin for it. That way will have full control over the routes, filters ext. that go on it. I am having issues with getting widgits to be registered in the form of I want to know where a widgit is being available for. So a route, name and position. Which is hard when diet isn't designed for that. Not entirely sure what to do. [0] https://github.com/rikkimax/Dvorm
Jan 06 2014
parent reply Etienne <etcimon globecsys.com> writes:
On 2014-01-06 9:48 PM, Rikki Cattermole wrote:
 On Monday, 6 January 2014 at 17:38:25 UTC, Etienne wrote:
 I'm working on a Framework/CMS where all controllers are in oData so
 you can create desktop/mobile applications in e.g. OpenUI5 - this
 allows compiling the D Language into a Desktop/Mobile application with
 Javascript UI with under 4 mb.

 Every library e.g. Users (core) would be in oData, with the ability to
 add fields and relations when loading your own library with a
 consistent db e.g. sqlite/mongodb. There would be oData connectors for
 each db. All libraries simply add up to create the final application
 with a unified database/oData object per domain services. You could
 call the oData remotely, but you can also issue calls internally to
 the host-local services to build a HTML frontend in vibe.d with oData
 controller.

 There's tons of things I'm planning for this framework. It's going to
 be a little like a kernel with hooks & event handlers, but with the
 settings in Lua pre-runtime. API is being developed here:
 https://github.com/GlobecSys/w3Vibe

 I'm looking forward to some comments, I'm only going to plan the
 structure for a few more days
Since I wrote my original post, I have built an ORM[0] and have done quite a bit of work on my own web service framework. Not currently up on a repo, but its nearing ready for it. By default it configures data models thanks to Dvorm, routes, has update functionality (every hour or five minutes depending on the task), cache manager to keeping a set data model in memory at all times. I am planning on getting it up to a point where it works as a CMS out of the box but also as a flexible component library. I actually like the look of odata and I may at some point implement a template mixin for it. That way will have full control over the routes, filters ext. that go on it. I am having issues with getting widgits to be registered in the form of I want to know where a widgit is being available for. So a route, name and position. Which is hard when diet isn't designed for that. Not entirely sure what to do. [0] https://github.com/rikkimax/Dvorm
I found it more useful to include temple instead of diet because there's a slight learning curve otherwise, not many people know about jade which is what diet is based on. I think you can get strings as callbacks through temple and pass it to other templates and include it with <%=string %>, look at the MemoryOutputStream in vibe. I needed the Scheme and QueryBuilder of HibernateD for OData, because the URI includes part of the query but it needs completion like this: http://example.com/odata.svc/Users(1)/Role/$view would be written as: parser = new QueryParser(schema, "FROM Role WHERE users.id = 1"); q = parser.makeSQL(dialect); // writeln(q.hql); // writeln(q.sql); assert(q.sql == "SELECT _t1.id, _t1.name FROM role AS _t1 LEFT JOIN role_users AS _t1_t2 ON _t1.id=_t1_t2.role_fk LEFT JOIN users AS _t2 ON _t1_t2.user_fk=_t2.id WHERE _t2.id = 1"); It would be great if Dvorm did this for BSON as well
Jan 07 2014
parent "Rikki Cattermole" <alphaglosined gmail.com> writes:
On Tuesday, 7 January 2014 at 15:12:45 UTC, Etienne wrote:
 On 2014-01-06 9:48 PM, Rikki Cattermole wrote:
 On Monday, 6 January 2014 at 17:38:25 UTC, Etienne wrote:
 I'm working on a Framework/CMS where all controllers are in 
 oData so
 you can create desktop/mobile applications in e.g. OpenUI5 - 
 this
 allows compiling the D Language into a Desktop/Mobile 
 application with
 Javascript UI with under 4 mb.

 Every library e.g. Users (core) would be in oData, with the 
 ability to
 add fields and relations when loading your own library with a
 consistent db e.g. sqlite/mongodb. There would be oData 
 connectors for
 each db. All libraries simply add up to create the final 
 application
 with a unified database/oData object per domain services. You 
 could
 call the oData remotely, but you can also issue calls 
 internally to
 the host-local services to build a HTML frontend in vibe.d 
 with oData
 controller.

 There's tons of things I'm planning for this framework. It's 
 going to
 be a little like a kernel with hooks & event handlers, but 
 with the
 settings in Lua pre-runtime. API is being developed here:
 https://github.com/GlobecSys/w3Vibe

 I'm looking forward to some comments, I'm only going to plan 
 the
 structure for a few more days
Since I wrote my original post, I have built an ORM[0] and have done quite a bit of work on my own web service framework. Not currently up on a repo, but its nearing ready for it. By default it configures data models thanks to Dvorm, routes, has update functionality (every hour or five minutes depending on the task), cache manager to keeping a set data model in memory at all times. I am planning on getting it up to a point where it works as a CMS out of the box but also as a flexible component library. I actually like the look of odata and I may at some point implement a template mixin for it. That way will have full control over the routes, filters ext. that go on it. I am having issues with getting widgits to be registered in the form of I want to know where a widgit is being available for. So a route, name and position. Which is hard when diet isn't designed for that. Not entirely sure what to do. [0] https://github.com/rikkimax/Dvorm
I found it more useful to include temple instead of diet because there's a slight learning curve otherwise, not many people know about jade which is what diet is based on. I think you can get strings as callbacks through temple and pass it to other templates and include it with <%=string %>, look at the MemoryOutputStream in vibe. I needed the Scheme and QueryBuilder of HibernateD for OData, because the URI includes part of the query but it needs completion like this: http://example.com/odata.svc/Users(1)/Role/$view would be written as: parser = new QueryParser(schema, "FROM Role WHERE users.id = 1"); q = parser.makeSQL(dialect); // writeln(q.hql); // writeln(q.sql); assert(q.sql == "SELECT _t1.id, _t1.name FROM role AS _t1 LEFT JOIN role_users AS _t1_t2 ON _t1.id=_t1_t2.role_fk LEFT JOIN users AS _t2 ON _t1_t2.user_fk=_t2.id WHERE _t2.id = 1"); It would be great if Dvorm did this for BSON as well
Dvorm already has most of the query support added :) Note .query() [0] although from what I can tell orderby would be needed. Also some sort of relationship for properties to models. [0] https://github.com/rikkimax/Dvorm/blob/master/src/orm/query.d
Jan 07 2014