Format string library?

Suppose that a game can show textual information about buildings (or
other game objects). Different users may want to show different level of
detail in different parts of the user interface. Then it would be
convenient to allow the user to give a format string. For example:
%N : type name
%c : coordinates

…and so on. Then the user could supply the format string "%N at %c"
and get “Woodcutter’s Hut at (5, 11)”. The application could have many
different places that allow format strings and make different variables
available for use in them. Is there a library for this?

I just use search and replace. This is also useful in localization contexts,
where sometimes you must format strings where the order of the parameters
may change.

If you want to get fancy, use a format string and a hash.

–GabrielOn Tue, Mar 24, 2009 at 6:05 PM, Erik wrote:

Suppose that a game can show textual information about buildings (or
other game objects). Different users may want to show different level of
detail in different parts of the user interface. Then it would be
convenient to allow the user to give a format string. For example:
%N : type name
%c : coordinates

…and so on. Then the user could supply the format string "%N at %c"
and get “Woodcutter’s Hut at (5, 11)”. The application could have many
different places that allow format strings and make different variables
available for use in them. Is there a library for this?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Suppose that a game can show textual information about buildings (or
other game objects). Different users may want to show different level of
detail in different parts of the user interface. Then it would be
convenient to allow the user to give a format string. For example:
%N : type name
%c : coordinates

…and so on. Then the user could supply the format string "%N at %c"
and get “Woodcutter’s Hut at (5, 11)”. The application could have many
different places that allow format strings and make different variables
available for use in them. Is there a library for this?

I believe the C standard library has what you’re looking for. Check out s[n]printf.

Basically:

sprintf(descrption_string, “%s at (%d, %d)”, hut_name, hut_coord_x, hur_coord_y);

----- Original Message -----
From: esigra@gmail.com (Erik)
To: A list for developers using the SDL library. (includes SDL-announce)
Sent: Tuesday, March 24, 2009 5:05:34 PM
Subject: [SDL] Format string library?

I believe the C standard library has what you’re looking for. Check out s[n]printf.

I think OP wants something dynamic so that the format string can be
changed at runtime. If you just wanted to use sprintf(), you’d still
have the task of sanitizing the input string, and converting friendly
symbols (%N and %c in the OP’s example) to sprintf() symbols (%1$s
%2$d etc.)

OP, please be advised that using only relatively low-level languages
like C/C++ is not always a prudent decision for game developers. You
may consider using something like Python, which gives you a very nice
syntax for this exact operation:

info = dict()
info[‘desc’] = "Woodcutter’s Hut"
info[‘pos’] = (5, 11)
info[‘hp’] = (500,500) # like RTS games :stuck_out_tongue:
info[‘owner’] = players[0]
info_fmt = "%(desc)s at %(pos)s"
print info_fmt % info
Woodcutter’s Hut at (5, 11)On Tue, Mar 24, 2009 at 9:08 PM, wrote:


http://codebad.com/

Donny Viszneki skrev:

OP, please be advised that using only relatively low-level languages
like C/C++ is not always a prudent decision for game developers. You
may consider using something like Python, which gives you a very nice
syntax for this exact operation:

info = dict()
info[‘desc’] = "Woodcutter’s Hut"
info[‘pos’] = (5, 11)
info[‘hp’] = (500,500) # like RTS games :stuck_out_tongue:
info[‘owner’] = players[0]
info_fmt = "%(desc)s at %(pos)s"
print info_fmt % info

Woodcutter’s Hut at (5, 11)

Nice example. But I do not think that the language is the problem. C++
may not have that feature built in but it is most likely possible to
implement it in a little library. It would be possible to create such a
"dict" type and an operator% that takes a string and a dict as
parameters. Maybe someone already did?

Hiyya, yes in fact the string templates, string functions, and string abilities of the stl in C++ are the most advanced of any language. If you research it you’ll find that people have the kind of thing you want in a working example…point to it you say? www.msn.com and c++ string functions. And hey you don’t need to use C++ but why are so many game companies doing it? That’s another thing to research.

---- Erik wrote:=============
Donny Viszneki skrev:

OP, please be advised that using only relatively low-level languages
like C/C++ is not always a prudent decision for game developers. You
may consider using something like Python, which gives you a very nice
syntax for this exact operation:

info = dict()
info[‘desc’] = "Woodcutter’s Hut"
info[‘pos’] = (5, 11)
info[‘hp’] = (500,500) # like RTS games :stuck_out_tongue:
info[‘owner’] = players[0]
info_fmt = "%(desc)s at %(pos)s"
print info_fmt % info

Woodcutter’s Hut at (5, 11)

Nice example. But I do not think that the language is the problem. C++
may not have that feature built in but it is most likely possible to
implement it in a little library. It would be possible to create such a
"dict" type and an operator% that takes a string and a dict as
parameters. Maybe someone already did?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Donny Viszneki skrev:

Nice example. But I do not think that the language is the problem. C++
may not have that feature built in but it is most likely possible to
implement it in a little library. It would be possible to create such a
"dict" type and an operator% that takes a string and a dict as
parameters. Maybe someone already did?

template
string operator%(const string &fmt, const map<string, T> &dict)
{
ostringstream ss;
size_t tail = 0;

for (size_t i = 0;
     i++ != string::npos;
     i = fmt.find('%', i)) {

	const pair<string, T> match =
		*--dict.upper_bound(fmt.substr(i));

	if (fmt.compare(i,
	                match.first.length(),
		        match.first) == 0) {

		ss.write(&fmt[tail], i - tail - 1);
		ss << match.second;

		tail = i + match.first.length();
	}
}

ss.write(&fmt[tail], fmt.length() - tail);

return ss.str();

}

map<string, const char *> info;
info[“desc”] = “Woodcutter’s Hut”;
info[“pos”] = “(5, 11)”;
info[“hp”] = “(500,500)”;
info[“owner”] = “Player 0”;

cout << “%desc at %pos” % info << endl;
// Woodcutter’s Hut at (5, 11)

wrote:

Hiyya, yes in fact the string templates, string functions, and string abilities of the stl in C++ are the most advanced of any language.

I agree that C++ is very powerful, but it has never had the string
manipulation capabilities of say perl or python, just because the
power is not quite abstracted all the way. One ends up with
gobbledygook like what I pasted above.

Hiyya, you’re right. What language you should use is a decision to think hard about. If the language looks to you like a bunch of goop then either learn it till it looks fairly simple or use something a little more simple in the first place. I suggest visual basic for an easy to learn language. If you want the fastest or most detail oriented language I would suggest assmbly or C++. But what do I know? Research it for yourself.

p.s. I think a good number of you find the code below pretty easy to follow even without the //coder notes that should say what we are doing and why-----------------------------

---- Jeff Smith wrote:

=============
Donny Viszneki skrev:

Nice example. But I do not think that the language is the problem. C++
may not have that feature built in but it is most likely possible to
implement it in a little library. It would be possible to create such a
"dict" type and an operator% that takes a string and a dict as
parameters. Maybe someone already did?

template
string operator%(const string &fmt, const map<string, T> &dict)
{
ostringstream ss;
size_t tail = 0;

for (size_t i = 0;
     i++ != string::npos;
     i = fmt.find('%', i)) {

	const pair<string, T> match =
		*--dict.upper_bound(fmt.substr(i));

	if (fmt.compare(i,
	                match.first.length(),
		        match.first) == 0) {

		ss.write(&fmt[tail], i - tail - 1);
		ss << match.second;

		tail = i + match.first.length();
	}
}

ss.write(&fmt[tail], fmt.length() - tail);

return ss.str();

}

map<string, const char *> info;
info[“desc”] = “Woodcutter’s Hut”;
info[“pos”] = “(5, 11)”;
info[“hp”] = “(500,500)”;
info[“owner”] = “Player 0”;

cout << “%desc at %pos” % info << endl;
// Woodcutter’s Hut at (5, 11)

<@necron> wrote:

Hiyya, yes in fact the string templates, string functions, and string abilities of the stl in C++ are the most advanced of any language.

I agree that C++ is very powerful, but it has never had the string
manipulation capabilities of say perl or python, just because the
power is not quite abstracted all the way. One ends up with
gobbledygook like what I pasted above.


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

o_OOn Thu, Mar 26, 2009 at 6:08 PM, wrote:

If you want the fastest or most detail oriented language I would suggest
assmbly or C++.


http://codebad.com/

If you want the fastest or most detail oriented language I would suggest
assmbly or C++.

o_O

As long as we’re talking language choice, allow me to throw in my 2 cents. If you want the “fastest or most detail-oriented language” that doesn’t look like a grotesque smiley face painted over assembly and is actually human-readable, try Delphi. The latest version comes with a built-in dictionary class which, together with the Format() standard library routine, can accomplish what you’re trying to do very easily. We’ve got an existing header for SDL 1.2.13, and I’m working on writing up a 1.3 header in my spare time.

It compiles to native code, and has a much richer object model than C++, and an exception-handling system that actually works. (Much of which derives from the advantages of the object model.) It manages to avoid pretty much all of the pitfalls and defects of what has to be the worst language ever to be taken seriously. (See http://yosefk.com/c++fqa/defective.html, but take it with a grain of salt. This guy’s been drinking way too much managed-code-flavored Kool-Aid, and it skews some of his arguments. Even so, the guy knows C++ inside and out, and it’s still a really good analysis of the language for the most part.)

The only downside is that it’s not cross-platform. (Though FPC is, which is mostly compatible and works pretty well if you don’t need too much GUI support, which isn’t usually a priority on SDL apps.) But they’re currently working on a cross-platform compiler, so that won’t be an issue for too long.>----- Original Message ----

From: Donny Viszneki <donny.viszneki at gmail.com>
Subject: Re: [SDL] Format string library?
On Thu, Mar 26, 2009 at 6:08 PM, wrote:

The only downside is that it’s [Delphi] not cross-platform. (Though
FPC is, which is mostly compatible and works pretty well if you
don’t need too much GUI support, which isn’t usually a priority on
SDL apps.)

Don’t put FPC (Free Pascal Compiler) into brackets! :slight_smile:

The language you are talking about is called Object Pascal, not
Delphi. Delphi is just one compiler for it. FPC is actually more close
to the Object Pascal standard than Delphi, if I recall correctly. And
FPC has some nicer extensions. And a really wide range of supported
platforms.

And there is also GUI support. There is a Delphi clone, based on FPC,
which is called Lazarus and actually it is really worth the look!
Lazarus comes with the LCL (Lazarus Class Library; basically the
pendant to VCL) which is almost compatible to the VCL (which means you
can reuse all your Delphi code) and has some really nice
implementations, including GTK1, GTK2, Qt, Win32, Carbon (MacOSX
native) and some more.

Here is also some nice benchmark:
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&d=data&calc=calculate&xfullcpu=1&xmem=1&xloc=0&binarytrees=1&chameneosredux=1&fannkuch=1&fasta=1&knucleotide=1&mandelbrot=1&meteor=0&nbody=1&nsieve=1&nsievebits=1&partialsums=1&pidigits=1&recursive=1&regexdna=1&revcomp=1&spectralnorm=1&hello=0&sumcol=1&threadring=1

But they’re [Delphi devs] currently working on a cross-platform
compiler, so that won’t be an issue for too long.

I don’t think they will ever get so far what Lazarus has done already
(in the sense of supported GUI systems) and never have support for so
many platforms (like FPC).Am 26.03.2009 um 23:46 schrieb Mason Wheeler:

Don’t put FPC (Free Pascal Compiler) into brackets! :slight_smile:

The language you are talking about is called Object Pascal, not Delphi. Delphi is just one compiler for it. FPC is actually
more close to the Object Pascal standard than Delphi, if I recall correctly. And FPC has some nicer extensions. And a
really wide range of supported platforms.

There’s an Object Pascal standard? I wasn’t aware of this. I always thought it was just “Delphi is the de facto standard,
and other implementations are mostly compatible.” Where can I find a specification?

And there is also GUI support. There is a Delphi clone, based on FPC, which is called Lazarus and actually it is really
worth the look! Lazarus comes with the LCL (Lazarus Class Library; basically the pendant to VCL) which is almost
compatible to the VCL (which means you can reuse all your Delphi code) and has some really nice implementations,
including GTK1, GTK2, Qt, Win32, Carbon (MacOSX native) and some more.

Yep. Lazarus is great, unless you need frames, packages (including plugins), or advanced database support,
which any non-trivial Delphi app needs at least one of. And that’s not even mentioning its built-in symbolic debugger,
which frankly isn’t worth the bits it takes up on your hard drive. Even Visual Studio has a better debugger. :frowning:

I love open-source software, when it’s done right. Problem is, Lazarus just plain isn’t done right, and I haven’t seen
any indications over the last 3 years or so that they’re improving in any of their myriad problems. Sorry, but it’s true.
I’ve made more attempts than I’d like to remember to port my game engine to Lazarus. They kept running into the
same deficiencies, which never seem to get fixed. If they’d actually fix them and produce a full-featured Delphi
clone, I’d switch in no time flat. But it’s just not gonna happen. :frowning:

But they’re [Delphi devs] currently working on a cross-platform compiler, so that won’t be an issue for too long.

I don’t think they will ever get so far what Lazarus has done already (in the sense of supported GUI systems) and
never have support for so many platforms (like FPC).

Maybe. And yeah, right now you can compile with FPC to just about any platform. Problem is, with all the fundamental
Delphi features it has no support for whatsoever, there’s not all that much you can compile. My money’s on
CodeGear producing a usable cross-platform Delphi compiler long before the Lazarus team gets its collective
rear in gear and brings their GUI feature set up to spec.

However, as I said in my first post, most of these issues don’t apply to SDL games. (Though plugins would
be very nice.) So FPC is a good stopgap until CodeGear comes up with the real deal.

Either way, they’re both far better than C++ :P>----- Original Message ----

From: Albert Zeyer <albert.zeyer at rwth-aachen.de>
Subject: Re: [SDL] Format string library?

Don’t put FPC (Free Pascal Compiler) into brackets! :slight_smile:

The language you are talking about is called Object Pascal, not
Delphi. Delphi is just one compiler for it. FPC is actually
more close to the Object Pascal standard than Delphi, if I recall
correctly. And FPC has some nicer extensions. And a
really wide range of supported platforms.

There’s an Object Pascal standard? I wasn’t aware of this. I
always thought it was just “Delphi is the de facto standard,
and other implementations are mostly compatible.” Where can I find
a specification?

Oh, seems it was crap what I was talking about. At least Wikipedia
doesn’t say anything about a fixed standard.

“Object Pascal refers to a branch of object-oriented derivatives of
Pascal, […]”

“Today, Object Pascal is used collectively to refer to different
dialects of the Pascal language with object-oriented programming
extension, although these dialects are mostly compatible with
CodeGear’s implementation.”

I don’t know where and what exactly I read but it was something that
FPC has better support for Object Pascal than Delphi. Probably that
was related to some of the FPC extensions.

And there is also GUI support. There is a Delphi clone, based on
FPC, which is called Lazarus and actually it is really
worth the look! Lazarus comes with the LCL (Lazarus Class Library;
basically the pendant to VCL) which is almost
compatible to the VCL (which means you can reuse all your Delphi
code) and has some really nice implementations,
including GTK1, GTK2, Qt, Win32, Carbon (MacOSX native) and some
more.

Yep. Lazarus is great, unless you need frames,

That is not supported? I would wonder if not…

packages (including plugins),

It supports packages. It already comes with some and there are a lot
you can download. Look here:
http://wiki.lazarus.freepascal.org/Install_Packages

or advanced database support,

It has a lot of DB support, at least for MySQL, PostgreSQL, Firebird,
Interbase and SQLite. See here for a full list:
http://wiki.freepascal.org/Databases

Or some more details here:
http://wiki.lazarus.freepascal.org/Lazarus_DB_Faq

which any non-trivial Delphi app needs at least one of. And that’s
not even mentioning its built-in symbolic debugger,
which frankly isn’t worth the bits it takes up on your hard drive.
Even Visual Studio has a better debugger. :frowning:

From what I have heard, VS has a really good debugger. And the
Lazarus debugger (which actually just uses GDB) was just working, the
last time I checked (but I just did only some basic stuff, as stepping
through the app, set some breakpoints, looking at some variables).

I love open-source software, when it’s done right. Problem is,
Lazarus just plain isn’t done right, and I haven’t seen
any indications over the last 3 years or so that they’re improving
in any of their myriad problems. Sorry, but it’s true.
I’ve made more attempts than I’d like to remember to port my game
engine to Lazarus. They kept running into the
same deficiencies, which never seem to get fixed. If they’d
actually fix them and produce a full-featured Delphi
clone, I’d switch in no time flat. But it’s just not gonna happen. :frowning:

When was the last time you checked Lazarus? I got the feeling that
they are working a lot on it and more and more developers joined the
project.

Here some documentation:
http://wiki.lazarus.freepascal.org/index.php/Main_Page
http://wiki.lazarus.freepascal.org/Lazarus_Documentation

But they’re [Delphi devs] currently working on a cross-platform
compiler, so that won’t be an issue for too long.

I don’t think they will ever get so far what Lazarus has done
already (in the sense of supported GUI systems) and
never have support for so many platforms (like FPC).

Maybe. And yeah, right now you can compile with FPC to just about
any platform. Problem is, with all the fundamental
Delphi features it has no support for whatsoever, there’s not all
that much you can compile. My money’s on
CodeGear producing a usable cross-platform Delphi compiler long
before the Lazarus team gets its collective
rear in gear and brings their GUI feature set up to spec.

However, as I said in my first post, most of these issues don’t
apply to SDL games. (Though plugins would
be very nice.) So FPC is a good stopgap until CodeGear comes up
with the real deal.

Either way, they’re both far better than C++ :stuck_out_tongue:

We really thought also about porting our C++ game to Object Pascal
(esp. to FPC). But it’s easier said than done, for about 150,000 lines
of code…

Another nice feature, which wasn’t mentioned yet, is the ultra fast
compiling speed of FPC. You get insane if you compare it to GCC
compiling C++ code.Am 27.03.2009 um 00:17 schrieb Mason Wheeler:

----- Original Message ----
From: Albert Zeyer <@Albert_Zeyer>
Subject: Re: [SDL] Format string library?

including GTK1, GTK2, Qt, Win32, Carbon (MacOSX native) and some more.

Yep. Lazarus is great, unless you need frames,

That is not supported? I would wonder if not…
http://wiki.lazarus.freepascal.org/Roadmap
It’s listed as “in progress”. Has been for years.

packages (including plugins),

It supports packages. It already comes with some and there are a lot you can download. Look here:
http://wiki.lazarus.freepascal.org/Install_Packages
I’m not talking about install packages. I’m talking about the RTTI-rich dynamic link libraries
that make plugins so easy on Delphi.
http://wiki.lazarus.freepascal.org/packages

(But while we’re on the subject of Install Packages, does the latest version of Lazarus still require you
to recompile the entire IDE every time you add a new component? They’ve been promising to fix that
RSN for at least 3 years now.)

or advanced database support,

It has a lot of DB support, at least for MySQL, PostgreSQL, Firebird, Interbase and SQLite. See here for a full list:
http://wiki.freepascal.org/Databases
Sure, it can bind to databases, but what do you do with the data once you get it? Most notably,
it’s got no TClientDataset. That really puts a crimp in things…

From what I have heard, VS has a really good debugger. And the Lazarus debugger (which actually just uses GDB)
was just working, the last time I checked (but I just did only some basic stuff, as stepping through the app, set some
breakpoints, looking at some variables).
Try looking at an object, then examining its properties and internal fields. Problem is, GDB
was written for C, and doesn’t know the first thing about the RTTI-rich Object Pascal object
model. That makes it useless for inspecting most of the things you’d actually end up
inspecting in a real-world Object Pascal program.

When was the last time you checked Lazarus? I got the feeling that they are working a lot on it and more and more
developers joined the project.
A few months ago. And yeah, they’re working on it. But, as Vissini put it, they’re committing
one of the classic blunders. They’re adding new features and ignoring the basic defects,
so instead of a small system that doesn’t work, you eventually end up with a big bloated
system that doesn’t work. That’s been the death of too many projects to count, and if
Lazarus doesn’t turn things around it’ll be their fate too.

Another nice feature, which wasn’t mentioned yet, is the ultra fast compiling speed of FPC. You
get insane if you compare it to GCC compiling C++ code.
Yep. They got that from Delphi. Has to do with its unit model. By strictly enforcing
a single-pass compile system, your code is guaranteed to compile in O(n) time in all
cases. C and C++ have no pass-count safeguards at all, and while trivial programs
will compile in O(n) time, most real programs tend to have a very complicated web
of interdependencies that all reference each other, giving you a compile speed that
degrades to O(n^2) very quickly.

That was one of the things that bugged me about SDL. I was playing around with
the DLL, and one time I changed something that introduced a compiler error.
There were two actual errors. I got 74 reported errors, though, because it went
over the same code so many times!>----- Original Message ----

From: Albert Zeyer <albert.zeyer at rwth-aachen.de>
Subject: Re: [SDL] Format string library?

Jeff Smith skrev:

map<string, const char *> info;
info[“desc”] = “Woodcutter’s Hut”;
info[“pos”] = “(5, 11)”;
info[“hp”] = “(500,500)”;
info[“owner”] = “Player 0”;

cout << “%desc at %pos” % info << endl;
// Woodcutter’s Hut at (5, 11)

Here is the version that I have. Thanks to the FORMAT macro that I
defined, I could create key/value pairs just as easily as with the dict
approach. The difference is that only values that are requested will be
constructed (for example the string “(5, 11)” will not be created just
to be added to the dict and then not used most of the time).
(“container_iterate_const” and “upcast” are some generally useful macros
that are used throughout the project’s C++ source code.)

#define FORMAT(key, value) case key: result << value; break
std::string Building::info_string(std::string const & format) {
std::ostringstream result;
container_iterate_const(std::string, format, i)
if (*i.current == ‘%’) {
if (++i.current == i.end) { // unterminated format sequence
result << ‘%’;
break;
}
switch (*i.current) {
FORMAT(’%’, ‘%’);
FORMAT(‘i’, serial());
FORMAT(‘t’, get_statistics_string());
FORMAT
(‘s’,
(descr().get_ismine() ? _(“mine”) :
get_size () == BaseImmovable::SMALL ? _(“small”) :
get_size () == BaseImmovable::MEDIUM ? _(“medium”) :
_(“big”)));
FORMAT
(‘S’,
(descr().get_ismine() ? _(“Mine”) :
get_size () == BaseImmovable::SMALL ? _(“Small”) :
get_size () == BaseImmovable::MEDIUM ? _(“Medium”) :
_(“Big”)));
FORMAT(‘x’, get_position().x);
FORMAT(‘y’, get_position().y);
FORMAT(‘c’, ‘(’ << get_position().x << ", " <<
get_position().y << ‘)’);
FORMAT(‘A’, descname());
FORMAT(‘a’, name());
case ‘N’:
if (upcast(ConstructionSite const, constructionsite, this))
result << constructionsite->building().descname();
else
result << descname();
break;
case ‘n’:
if (upcast(ConstructionSite const, constructionsite, this))
result << constructionsite->building().name();
else
result << name();
break;
default: // invalid format sequence
result << ‘%’ << *i.current;
}
} else
result << *i.current;
return result.str();
}

I did not expect this thread to become a discussion about programming
languages like Object Pascal. (By the way, isn’t Ada 2005 the dominating
object oriented Pascal descendant in our time? I find it very useful for
many tasks.)

I did not expect this thread to become a discussion about programming
languages like Object Pascal. (By the way, isn’t Ada 2005 the dominating
object oriented Pascal descendant in our time? I find it very useful for
many tasks.)

I just looked at the Tiobe index ( http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html )
and found Delphi at #10, where it’s been more or less steady for the past few years. “Pascal” was
#16. Not sure if FPC/Lazarus is counted as Delphi or Pascal, but it doesn’t have a listing of its
own. Ada’s currently ranked #26, just above Fortran. (People are still using Fortran?!?)>----- Original Message ----

From: Erik
Subject: Re: [SDL] Format string library?

Mason Wheeler skrev:

I did not expect this thread to become a discussion about programming
languages like Object Pascal. (By the way, isn’t Ada 2005 the dominating
object oriented Pascal descendant in our time? I find it very useful for
many tasks.)

I just looked at the Tiobe index ( http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html )

I never heard about that index and have no idea how relevant it is. I
looked at the definition and it seems to be based on searches for some
(English) phrases on search engines. At least that limits its relevance
to the English speaking world.

Not sure if FPC/Lazarus is counted as Delphi or Pascal, but it doesn’t have a listing of its own.

It seems to be all bunched together (“Grouping: Delphi, Kylix, Object
Pascal, Free Pascal, Chrome (Exception: “Google”), Oxygene, Delphi.NET”,
[http://www.tiobe.com/content/paperinfo/tpci/tpci_definition.htm])>> From: Erik <@Erik1>

I never heard about that index and have no idea how relevant it is. I
looked at the definition and it seems to be based on searches for some
(English) phrases on search engines. At least that limits its relevance
to the English speaking world.
Yeah, it’s not a perfect metric, but it’s pretty good within the bounds it
sets for itself.

Not sure if FPC/Lazarus is counted as Delphi or Pascal, but it doesn’t have a listing of its own.

It seems to be all bunched together (“Grouping: Delphi, Kylix, Object
Pascal, Free Pascal, Chrome (Exception: “Google”), Oxygene, Delphi.NET”,
[http://www.tiobe.com/content/paperinfo/tpci/tpci_definition.htm])
Oh, cool! I didn’t see that page. Thanks!>----- Original Message ----
From: Erik
Subject: Re: [SDL] Format string library?

Mason Wheeler wrote:>> ----- Original Message ----

From: Erik
Subject: Re: [SDL] Format string library?

I never heard about that index and have no idea how relevant it is. I
looked at the definition and it seems to be based on searches for some
(English) phrases on search engines. At least that limits its relevance
to the English speaking world.
Yeah, it’s not a perfect metric, but it’s pretty good within the bounds it
sets for itself.

And even more because this list only uses search engine results.
As the way documentation for different languages are spread is varying
greatly, I personally will not give a rats ass worth to that index.