JaroslavTulach at 04:41, 1 October 2021 - 2021-10-01 04:41:22

←Older revision Revision as of 04:41, 1 October 2021
Line 5: Line 5:
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[language]]s: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[language]]s: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
-
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]], I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
+
This is a new situation for me: In case of [[NetBeans]] or in case of [[Html4Java|HTML/Java APIs]], I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.

JaroslavTulach at 14:00, 1 August 2017 - 2017-08-01 14:00:58

←Older revision Revision as of 14:00, 1 August 2017
Line 10: Line 10:
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]]. Soon we'll find out if [[API]] Design can be offered as a service!
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]]. Soon we'll find out if [[API]] Design can be offered as a service!
 +
 +
Update from summer 2017: After [[TwoYearsWithTruffle]] I'd say there is a lot of things one can do to [[design API as a service]] without being a [[Domain Expert]].

JaroslavTulach at 11:38, 17 May 2015 - 2015-05-17 11:38:12

←Older revision Revision as of 11:38, 17 May 2015
Line 1: Line 1:
-
[[Domain Expert]] is a person who has [[wikipedia:Domain knowledge|knowledge]] of a particular system. With such knowledge it may seem easy to design [[API]]s for the domain. However without understanding the [[API]] [[Paradoxes]] the quality of such [[API]] may not be high. It likely going to cover the domain field, but the [[API]] usability or readiness for [[evolution]] will very likely suffer (unless such [[Domain Expert]] reads [[TheAPIBook]] first).
+
[[Domain Expert]] is a person who has [[wikipedia:Domain knowledge|knowledge]] of a particular system. With such knowledge it may seem easy to design [[API]]s for the domain. However without understanding the [[API]] [[Paradoxes]] the quality of such [[API]] may not be high. It is likely going to cover the domain field, but the [[API]] usability or readiness for [[evolution]] will very likely suffer (unless such [[Domain Expert]] reads [[TheAPIBook]] first).
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?

JaroslavTulach at 10:25, 17 May 2015 - 2015-05-17 10:25:38

←Older revision Revision as of 10:25, 17 May 2015
Line 9: Line 9:
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.
-
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]]. Soon we'll find out if [[APIDesign]] can be offered as a service!
+
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]]. Soon we'll find out if [[API]] Design can be offered as a service!

JaroslavTulach at 10:25, 17 May 2015 - 2015-05-17 10:25:26

←Older revision Revision as of 10:25, 17 May 2015
Line 1: Line 1:
-
Once one has [[wikipedia:Domain knowledge|domain knowledge]] of some subsystem, it is easy to become a [[Domain Expert]]. Then it may seem easy to design some [[API]]s for the domain. However without understanding the [[API]] [[Paradoxes]] the quality of such [[API]] may not be high. It likely going to cover the domain field, but the [[API]] usability or readiness for [[evolution]] will very likely suffer (unless such [[Domain Expert]] reads [[TheAPIBook]] first).
+
[[Domain Expert]] is a person who has [[wikipedia:Domain knowledge|knowledge]] of a particular system. With such knowledge it may seem easy to design [[API]]s for the domain. However without understanding the [[API]] [[Paradoxes]] the quality of such [[API]] may not be high. It likely going to cover the domain field, but the [[API]] usability or readiness for [[evolution]] will very likely suffer (unless such [[Domain Expert]] reads [[TheAPIBook]] first).
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
Line 9: Line 9:
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.
-
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].
+
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]]. Soon we'll find out if [[APIDesign]] can be offered as a service!

JaroslavTulach at 10:22, 17 May 2015 - 2015-05-17 10:22:05

←Older revision Revision as of 10:22, 17 May 2015
Line 7: Line 7:
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]], I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]], I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
-
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].
+
On the other hand, [[I]] am not yet ''damaged'' with the expert knowledge. I can still see the system with new comer eyes - just like you, users of [[Truffle]] will. As such [[I]] can perform a ''usability study'' on me, at least initially.
 +
 
 +
If [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].

JaroslavTulach at 10:14, 17 May 2015 - 2015-05-17 10:14:36

←Older revision Revision as of 10:14, 17 May 2015
Line 5: Line 5:
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[language]]s: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[language]]s: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
-
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]] [[API]]s, I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
+
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]], I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].

JaroslavTulach at 10:14, 17 May 2015 - 2015-05-17 10:14:08

←Older revision Revision as of 10:14, 17 May 2015
Line 3: Line 3:
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
-
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[languages]]: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
+
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[language]]s: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]] [[API]]s, I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]] [[API]]s, I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].

JaroslavTulach at 10:12, 17 May 2015 - 2015-05-17 10:12:21

←Older revision Revision as of 10:12, 17 May 2015
Line 3: Line 3:
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
-
[[I]] am now participating in an experiment that will check that. [[OracleLabs]] guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[languages]]: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
+
[[I]] am now participating in an experiment that will check that. [[Oracle]]Labs guys asked me to help them design [[Truffle]] interoperability [[API]]s. I do understand bit about [[Truffle]], but certainly [[I]] am not a [[Domain Expert]], yet I am supposed to design something as complicated as [[API]] to allow mixing of [[languages]]: imagine part of program written in [[Ruby]], part in [[JavaScript]], part in [[Java]] with objects floating between these languages without any borders!
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]] [[API]]s, I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
This is a new situation for me: In case of [[NetBeans]] or in case of [[netbeans:Html4Java|HTML/Java APIs]] [[API]]s, I was also the architect of the system. [[I]] knew it by heart. Now I barely understand how [[Truffle]] works and what makes it the fastest execution system for dynamic languages. My biggest fear is that I will design something that will be inherently slow.
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].
But on the other hand, if [[I]] can design easy to use [[API]]s for [[Truffle]], then I can create a perfect [[API]] facade around everything! Soon we'll have a chance to see whether one can be good [[API]] designer without being real [[Domain Expert]].

JaroslavTulach at 10:11, 17 May 2015 - 2015-05-17 10:11:45

←Older revision Revision as of 10:11, 17 May 2015
Line 1: Line 1:
-
Once one has [[wikipedia:Domain knowledge|domain knowledge]] of some subsystem, it is easy to become a [[Domain Expert]]. Then it may seem easy to design some [[API]]s for the domain. However without understanding the [[API]] [[Paradoxes]] the quality of the [[API]] may not be high. It likely going to cover the domain field, but the [[API]] usability or readiness for [[evolution]] will very likely suffer (unless such [[Domain Expert]] reads [[TheAPIBook]] first).
+
Once one has [[wikipedia:Domain knowledge|domain knowledge]] of some subsystem, it is easy to become a [[Domain Expert]]. Then it may seem easy to design some [[API]]s for the domain. However without understanding the [[API]] [[Paradoxes]] the quality of such [[API]] may not be high. It likely going to cover the domain field, but the [[API]] usability or readiness for [[evolution]] will very likely suffer (unless such [[Domain Expert]] reads [[TheAPIBook]] first).
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?
However can it work backwards? E.g. can one be ''just'' an [[API]] expert and then design [[good]] enough [[API]] without appropriate [[wikipedia:Domain knowledge|domain knowledge]]?