Thanks!

I think you summarized my points with Scala much better than I did :)


On Jul 12, 2011, at 1:00 PM, Matt Pavlovich wrote:

> Hi all-
> 
> I'm a long time user and current AMQ/SMX/Camel/CXF consultant hoping to get 
> more time to be active on the dev side of things.  I'm also a big proponent 
> that getting the technology correct will lead to a better product (blueprint 
> v spring).   One of the strengths of SMX is the wide range of technologies 
> that are supporting for deploying code projects, but it also has a down side 
> for folks that are new to Java, new to the product or are new to integration 
> altogether.  I'm a huge fan of these products and all the great work many 
> folks have put into them!
> 
> Notes from the field regarding my thoughts on SMX and SMX5, (apologies in 
> advance for veering off the Scala topic):
> 
> - For most users I've been to, getting the development infrastructure in 
> place is 10x the effort vs getting the actual platform up and running.  Teams 
> will lock into a specific version and stay there for 6 mos to a year and only 
> change when they have a *really* compelling reason (they'll code around bugs 
> just to not change dev infrastructure).  Code project templates, customer 
> certified Maven repos, Jenkins, Sonar and other tooling integrations are the 
> big hurdles in getting organizations successful with integration and 
> messaging projects.  Major technology changes have big and lasting impacts to 
> users.  Many users have skeleton project templates that they hand off to 
> their junior coders (or off-shore teams) to fill in the blanks.  Consider the 
> impact of the message that SMX5 is moving to Scala as a 
> **project-implementation technology**.  BTW-- I vote +2 for  the idea of 
> supporting Java interfaces in SMX5 ;-).  Please be mindful when communicating 
> in blog posts, white papers, etc so users don't mistakenly think that they 
> *need* to implement their projects in Scala.  Managers will see headlines 
> that say "SMX 5 moving to Scala" and they'll flip out thinking that they have 
> to scrap all their SMX 3 or SMX 4 development infrastructure-- or worse, 
> they'll deem SMX too volatile a platform for organizations to build around.  
> Reasoning and explanation doesn't apply-- knee-jerk, distrust, irrationality 
> and the latest blog post by some-schmo-named-Bob are the operatives here.
> 
>   In short, supporting Scala == good.  Users getting scared that they *have* 
> to move to Scala == bad.
> 
> - Please be mindful that many users of these products do not always have a 
> high level of programming knowledge.  Many organizations have an 
> administrative view towards integration, and not a programming view.    
> 
> - There is still quite a bit of confusion on the JBI->OSGi side of things, 
> and when to use OSGI services (ie.. many folks think that OSGI services are 
> the go-to "service" implementation in SMX).  A really big customer went with 
> SMX4, and explicitly declared "no Camel", b/c they didn't understand that 
> Camel replaced the JBI servicing from SMX3.  For SMX 5, it would be great to 
> have consistent communication about what technology is the recommended for 
> "your first SMX 5 project".
> 
> - Johan's note about users certifying jar-by-jar is right on.  I've seen two 
> other large orgs that have that as well.  Drivers for this are 
> interpretations of Sarbaines-Oxley (right or wrong), legal considerations 
> when redistributing a product that is SMX-based, or security policies.  
> 
> - The learning curve for SMX is steep for folks new to the product.  Many 
> things, like Maven deployments solve problems they don't even know they have 
> yet.  Has there been thought to usefully obscuring some of the various 
> technologies from users?  Karaf is great.  Is it really a separate product, 
> or more like a technology within a product?  Do users need to know SMX uses 
> OPS4J-related technologies?  Do config files have to be labeled Aries, Felix, 
> OPS4J, Karaf, ActiveMQ, Camel and ServiceMix (out of the box there are 3 
> files related to logging)?  Are there simple ways we can obscure some of the 
> technologies from the users to lower the learning curve and allow them to 
> grow into the product one step at a time? 
> 
> In my simple view of things, I liken this to how Mozilla had the Gecko 
> rendering engine as a technology that's used by several projects, but users 
> just see the product "FireFox".  Does it makes sense to leave the actual 
> property keys tied to the technologies, but consider more unified naming for 
> the config files themselves?  I know it sounds like a very trivial thing, but 
> anything we can do to have the code-project-level users spend less time 
> dealing with the admin side of things, the better the perception will be.  
> For example, keep the property named "org.ops4j.pax.url.mvn.localRepository", 
> but stick it in a "maven.cfg" or similar.
> 
> - Configuration.  Many developers I've come across are not versed in using 
> the Java debugger, so they rely on the alternative debugging approaches-- 
> JMX, verbose logging, System.out.println, etc.  Things like JMX enablement 
> for all technologies (CXF, Jetty, etc) should be readily configurable.  
> Default timeouts are a huge issue with so many different technologies being 
> tied together.  Many configuration options were hidden from users out of the 
> box in SMX4, like PAX web SSL, and Maven fallback repos in PAX-url.  Consider 
> an effort to expose important config options into the config files, even if 
> they are set to defaults or commented out.
> 
> Geez, rant ran long, thanks for hangin' in there :-)
> 
> Matt Pavlovich
> 
> On Jul 12, 2011, at 11:15 AM, Johan Edstrom wrote:
> 
>> A second comment would be :
>> 
>> How do we deal with organizations that have started certifying Java and
>> components?
>> Pluggable infrastructure for multiple implementations?
>> 
>> /je
>> 
>> On Tue, Jul 12, 2011 at 10:04 AM, Johan Edstrom <[email protected]> wrote:
>> 
>>> I have no problem whatsoever with Scala, I think that Apollo proved that.
>>> And if we write an integrations platform where something like scala
>>> provides
>>> significant improvements, why not use it?
>>> 
>>> I also think the ones savvy in scala will have to abide a lot of stupid
>>> questions :)
>>> 
>>> I do think that having a Java API is very important for existing customers
>>> otherwise the change from JBI->OSGi->Scala will be a bit of a whirlwind.
>>> 
>>> I think scala would do best if needed under the hood.
>>> 
>>> But here are my +1 - Things will always be changing.
>>> 
>>> Just look at how everything went to Apache Aries Blueprint.
>>> 
>>> /je
>>> 
>>> 
>>> On Jul 12, 2011, at 9:58 AM, Jean-Baptiste Onofré wrote:
>>> 
>>>> Hi all,
>>>> 
>>>> The low-hanging-fruit is a very good idea, and we added the same in
>>> Karaf.
>>>> 
>>>> Maybe, it's time to launch a formal vote about the Scala usage in
>>> ServiceMix; wdyt ?
>>>> 
>>>> Regards
>>>> JB
>>>> 
>>>> 
>>>> 
>>>> On Tue 12/07/11 17:26 , Ioannis Canellos  wrote::
>>>> 
>>>>> 
>>>>> We'll still have plenty of Java code to go around in the other
>>>>> subprojects but for ServiceMix 5, we now have a very good opportunity
>>>>> to start with a new and clean codebase again and I think it definitely
>>>>> makes sense to start with Scala there.
>>>> 
>>>> 
>>>> I totally agree with Gert on this one.
>>>> 
>>>> 
>>>>> As for making it easier for
>>>>> people to start contributing, I think we should tag issues as 'low
>>>>> hanging fruit' in JIRA if we think those are good for people to start
>>>>> with and put that list on the website somewhere instead of holding
>>>>> back on technology to achieve the same goal.
>>>>> 
>>>> 
>>>> This is indeed a very interesting idea, which we might want to apply no
>>>> matter what language we end up using.
>>>> 
>>>> --
>>>> *Ioannis Canellos*
>>>> *
>>>> http://iocanel.blogspot.com
>>>> 
>>>> Apache Karaf http://karaf.apache.org/> Committer & PMC
>>>> Apache ServiceMix http://servicemix.apache.org/>  Committer
>>>> *
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
> 

Reply via email to